Убираем слово Category для рубрик в URL в WordPress

По умолчанию в настройках ЧПУ wordpress для категорий придумано слово category, которое, на мой взгляд, совершенно лишнее в структуре УРЛ-ов страниц. То есть если не заполнить это самое поле, то урл категории будет выглядеть так

cmsuser.ru/сategory/ali-baba-i-sorok-skinov/

На одном из форумов увидел классную фишку, что если в настройках базиса категорий написать две точки, то слово category исчезает (по крайней мере в wordpress 2.8.*). Может так было задумано, может нет, решил написать в блоге, чтобы самому не забыть. Очень удобная фишка.

Если слетит что-то после её использования – я не виноват) у меня всё работает.

Получаем рубрики вида

cmsuser.ru/ali-baba-i-sorok-skinov/

и радуемся 🙂

UPDATE 9.07.2011
Для версии 3.0.5 на которой у меня несколько сайтов я использую другой метод, предложенный тут. В файл functions.php используемой темы нужно вписать функцию

//Удаляем category из УРЛа категорий
add_filter('category_link', create_function('$a', 'return str_replace("category/", "", $a);'), 9999);

Важно! При этом способе в админке wordpress ПАРАМЕТРЫ-НАСТРОЙКИ ПОСТОЯННЫХ ССЫЛОК в поле “префикс для рубрик” должно быть пусто, а структура чпу должна начинаться с /%category%/

Работает всё без глюков, главное ни в коем случае не забыть при смене шаблона вписать эту функцию снова.

Убираем слово Category для рубрик в URL в WordPress
Оцените статью

13 комментариев

Олег 06.03.2010 Reply

Спасибо, работает на самой новой версии 2.92 🙂

[Ответить]

Ильмир

@Олег, на версиях 3.0.2 работает нет не знаешь?

[Ответить]

Сергей 03.06.2010 Reply

Плохой совет, не будет работать, если есть подкатегории или когда несколько страниц в категории. Лучшим вариантом будет, если прописать в настройках постоянных ссылок тако вариант как
/%category%/%postname%.html
или /%category%/%postname%.php

а то вордпрес не поймет как разгребать урл, где категория, а где пост. То есть обязательно должно быть у поста в конце htm html php или еще что Вам нравится, тогда будет понятно, где катогрия, а где пост

[Ответить]

mikasi 29.06.2010 Reply

Воспользовался советом. Действительно, category пропадает, однако, в подкатегориях не показываются списки постов.
Подскажите плз как решить эту проблему 🙂

[Ответить]

admin

@mikasi, пока не знаю. сейчас хочу убрать это ненужное слово из нового сайта на wordpress 3.0.4 и это решение мне не нравится. так же как и единственная альтернатива – плагин seo without category – который не обновлялся уже три года и хз как работать будет при дальнейшем обновлении движка

[Ответить]

Igor Bredikhin 14.02.2011 Reply

.. действительно прекрассно работал в более ранних версиях.
При настройках
ЧПУ: /%category%/%postname%.htm
Префикс для рубрик: ..
При этом PageNavi и подкатегории тоже отлично работали.

В версиях 3.х.х эта хрень работать перестала.

Блуждающие по инету добавочки к function.php и seo without category неработают с пагинацией и в ранних версиях.

Есть куча подобных плагинов, но сложновато все имющиеся проверить. Пробывал WP No Category Base на WP 3.0.5 вроде все красиво и все работает.

Кроме того есть вариант прописать в Префикс для рубрик: . (1 точку) сейчас проверяю, вроде тоже все работает

[Ответить]

admin

@Igor Bredikhin, спасибо за опыт) плагин мне пока нравится больше чем вариант с точкой

[Ответить]

Igor Bredikhin 16.02.2011 Reply

Кстати, по неокоторой информации вариант с точкой рекомендуют создатели WP

[Ответить]

admin

@Igor Bredikhin, интересно. я слышал только то, что эта точка в хтмл коде будет, но не будет в урл-е конечном. мне этот вариант не нравится почему-то.

[Ответить]

segvk 17.04.2011 Reply

WP No Category Base на WP 3.1.1 рулит. Статья и комменты были полезными. Точки пробовал прописывать, с ними ничего не вышло. Без точек все зашибись.

[Ответить]

gadsnxl 22.08.2012 Reply

с точками уже не работает вер 3.4.1

[Ответить]

admin

@gadsnxl, будем искать новое решение

[Ответить]

Денис 19.09.2012 Reply

Спасибо, второй метод сработал

[Ответить]

Добавить комментарий