Убираем слово 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%/

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

Оцените статью
  • Спасибо, работает на самой новой версии 2.92 🙂

    [Ответить]

    Ильмир

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

    [Ответить]

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

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

    [Ответить]

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

    [Ответить]

    admin

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

    [Ответить]

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

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

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

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

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

    [Ответить]

    admin

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

    [Ответить]

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

    [Ответить]

    admin

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

    [Ответить]

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

    [Ответить]

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

    [Ответить]

    admin

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

    [Ответить]

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

    [Ответить]