- 24 Авг 2017г
- 901
- 5
- Рубрика: Wordpress
404 ошибка на странице рубрики WordPress или безболезненное удаление category из адреса ссылки

Доброго времени суток. 🙂
Данная статья будет полезна тем, кто столкнулся с небольшой проблемой - 404 ошибка на странице категории. Такая ошибка возникает при попытке удаления category из адреса ссылки, во время настройки ЧПУ (человеко-понятный урл). иногда данная процедура проходит на ура, но бывает что в результате определенных действий, на страницах категорий появляется ошибка. Подробнее о том как убирается category, я писал в статье - Как убрать category из URL адреса WordPress.
В итоге, когда вы задаете настройки постоянных ссылок таким образом - /%category%/%postname%.html, то ссылка получится примерно такой http://gnatkovsky.com.ua/category/name/postname.html. Чтобы убрать category - в префикс рубрик ставится точка. Иногда все ок, но бывает и вылазят проблемы. Если вы использовали какой-то плагин, то вряд ли у вас бы такое получилось. Но не всегда хочется использовать плагины. Хотя одним из решений этой проблемы, всеравно я рекомендовал бы установку плагина - WP No Category Base. После чего проблема 404 ошибки сразу же исчезнет.
Так же можете добавить небольшой код в свой файл функций - functions.php активной темы.
add_filter('user_trailingslashit', 'remcat_function'); function remcat_function($link) { return str_replace("/category/", "/", $link); } add_action('init', 'remcat_flush_rules'); function remcat_flush_rules() { global $wp_rewrite; $wp_rewrite->flush_rules(); } add_filter('generate_rewrite_rules', 'remcat_rewrite'); function remcat_rewrite($wp_rewrite) { $new_rules = array('(.+)/page/(.+)/?' => 'index.php?category_name='.$wp_rewrite->preg_index(1).'&paged='.$wp_rewrite->preg_index(2)); $wp_rewrite->rules = $new_rules + $wp_rewrite->rules; }
Таким образом вы по сути сделаете то же. что делает плагин WP No Category Base.
У данного кода есть несколько условий. Чтобы он работал,нужно обязательно указывать в настройках ссылок параметр типа /%category%/%postname%/ - или /%category%/%postname%.html, чтобы там в начале было /%category%/. Так же нужно, чтобы в поле - Префикс рубрик, ничего не было. Оно должно быть пустым.
Проблема решена, 404 ошибка исчезла, ненавистное Category из ссылки убрано, можно дальше радоваться жизни!
На этом все, спасибо за внимание. 🙂
Комментариев: 12
Здравствуйте, ещё подсказали бы как удалить префикс tag из url адресной строки и цены вам не будет)
Комментариев: 513
Попробуйте плагин WP No Tags Base.
Комментариев: 12
Увы он уже устарел да и репозитории его нет, меня видно одного интерисует как этот префикс убрать)
Комментариев: 513
Когда-то давно, меня тоже этот вопрос интересовал, но потом я его оставил в покое. Дело в том, что если убрать tag, то может случится так, что у некоторых меток и рубрик будет одинаковая ссылка, а это не возможно. В итоге вылезет куча боков. Поэтому никто особо с этим не заморачиваться.
Комментариев: 1
Спасибо большое, второй день сижу в нете в поисках ответа. А тут все так просто, еще раз спасибо!!!!!!!!!!!