Артём Мáлков

Удаляем префикс category из URL рубрик в WordPress без плагина

25 авг3 комм

Я думаю, многие знают, что настройка адресов в WordPress находится в панели управления, раздел «Настройки», пункт «Постоянные ссылки».

Если вы используете произвольный тип ссылок, подобный этому:

Удаляем префикс category из URL рубрик в WordPress без плагина

то могли встречать такой нюанс, когда к ссылкам рубрик (категорий) добавляется так называемый префикс category. И выглядит это примерно так:

https://www.pandoge.com/category/haki/

Эта приставка бесполезна по нескольким причинам, первая из которых – на ее основе строится URL-адрес рубрик и при попытке перейти по адресу типа:

https://www.pandoge.com/category/

мы получим 404 ошибку, хотя по логике вещей мы должны попасть в родительскую категорию /category/.

Вторая причина – приставка добавляет длины конечному URL-адресу. А как мы знаем, чем короче адрес – тем лучше, с точки зрения SEO и юзабилити, учитывая и тот факт, что у вас и без этого может быть большая вложенность категорий.

Поскольку нам совсем не нужна эта часть адреса на своем сайте (что интересно – у записей этот префикс отсутствует без каких-либо дополнительных настроек), я покажу вам способ, как ее можно убрать.

Удаление префикса category из URL-рубрик в WordPress через небольшую функцию

1. Авторизуйтесь в панели управления вашим сайтом.

2. Перейдите в раздел «Настройки», пункт «Постоянные ссылки». В нем (если это еще не сделано) выставите тип «Произвольно» с видом:

/%category%/%postname%.html

По необходимости можете оставить или убрать окончание .html.

3. Далее подключитесь к вашему сайту по FTP.

4. В папке вашей темы найдите и откройте файл functions.php. В самый его низ вставьте:

add_filter("category_link", function($a) {

	return str_replace("category/", "", $a);

}, 9999);

Сохраните изменения, отправьте файл обратно на сайт и проверяйте результат.

Если изменений не произошло, то после установки скрипта пересохраните настройки постоянных ссылок.

Для решения этой задачи существуют и различные плагины, но здесь, думаю, они ни к чему.

Если ваш сайт уже проиндексирован поисковыми системами, то рекомендую настроить 301 редирект, чтобы ускорить переиндексацию рубрик по новым адресам. Для этого в корне сайта откройте файл .htaccess и сразу после строки:

RewriteBase /

вставьте:

RewriteRule ^(.*)category/(.+)$ /$1$2 [R=301,L]

и сохраните изменения.

Если у вас префикс, отличный от category, – замените в каждом коде его на свой.

Рекомендуем к просмотру
Получение полного развернутого списка категорий из YML-файла в TXT на PHP
Модули и скрипты
Задаем свой шаблон category для родительской и дочерних рубрик в WordPress
Хаки
Как настроить вывод нужных категорий в календарь DLE?
Хаки
3
комментария
Форма комментирования этого поста скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
    • 2
    1
      •  Пользователь
    16 янв в 01:33

    Спасибо, Артём! СУПЕР! smiley

    • 3
    1067
      •  Команда Pandoge
    25 авг в 15:53

    Miko, в настройках, насколько я помню, настраивается вид адресов постов. У рубрик вид URL остается без изменений. Но изменение вида постоянных ссылок помогает (в связке со скриптом) удалить не нужный префикс у рубрик.

    • 2
    766
      •  Гости
    11 июн в 09:59

    Не понял, в адресной строке просто появляется слово "category"? А что если его убрать в настройках /%category/%?

Подняться наверх
«Pandoge» - помощник вебмастера