Итак, суть проблемы – при переходе на 2-3 и так далее страницы блога возникает 404 ошибка, если в пермалинках у нас установлены нестандартные ЧПУ.
Для начала на странице Permalink Settings просто нажмите Save Changes, это вызовет обновление файла .htaccess и обновление пермалинок на сайте, например, эту операцию нужно произвести после добавления кастомных типов записей, чтобы обновили (добавились) урлы для новых типов записей. Иногда эта операция помогает с 404 ошибками и сайт начинает работать как надо. Если 404 ошибка при пагинации осталась, двигаемся дальше.
Допустим, в Permalink Settings у нас стоят такие параметры
Custom Structure
/blog/%category%/%postname%/
А в Category base
blog/.
В таком случае при переходе на страницу https://site.com/blog/nature/page/2/ получим 404 ошибку, что для меня было неожиданностью. Лечится данный баг добавлением в файл функций нижепредставленного кода
function wphelp_custom_pre_get_posts($query)
{
if ($query->is_main_query() && !$query->is_feed() && !is_admin() && is_category()) {
$query->set('paged', str_replace('/', '', get_query_var('page')));
}
}
add_action('pre_get_posts', 'wphelp_custom_pre_get_posts');
function wphelp_custom_request($query_string)
{
if (isset($query_string['page'])) {
if ('' != $query_string['page']) {
if (isset($query_string['name'])) {
unset($query_string['name']);
}
}
}
return $query_string;
}
add_filter('request', 'wphelp_custom_request');
После этого, пагинация по сайту работает без проблем.
Комментарии (2) к “Как исправить ошибку 404 при постраничной навигации, если используются кастомные ссылки для записей и категорий в CMS WordPress”
Саша
Дай тебе Бог здоровья!
Павел
и долгих лет жизни!!!