Удаляем префикс category из URL рубрик в WordPress без плагина
Я думаю, многие знают, что настройка адресов в 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, – замените в каждом коде его на свой.