Как исправить 404 ошибку в пагинации WordPress

Разрабатывая тему для сайта столкнулся со следующей проблемой — 404 ошибка при использовании пагинации в файле category.php с помощью функции the_posts_pagination()

Задавшись вопросом почему не работает функция the_posts_pagination () стал искать ответ в рунете. Как ни странно конкретного ответа на этот вопрос найти не получилось, но я понял, что не первый, кто с ней столкнулся и вырисовывалась следующая картинка.

Итак, что же происходит?

Данная ситуация возникает тогда, когда в настройках сайта, в разделе «Настройки постоянных ссылок» выбран произвольный формат:

/%category%/%postname%/

И вроде бы сначала, все хорошо, но когда мы переходим на вторую страницу WordPress отправляет нас на страницу похожую на эту:

www.your_site.ru/your_taxonomy/page/2

В итоге добавленные /page/2 конфликтуют с настройкой постоянных ссылок, что и приводит к 404-ой ошибке.

Какое решение?

Нам нужно добиться двух вещей, чтобы решить эту проблему.

Во-первых, нам нужно, чтобы удалить часть URL из-за которого происходит ошибка, прежде чем WordPress пытается обработать запрашиваемый адрес. Для этого добавим следующий код в файл functions.php:

Во-вторых, реализуем механизм получения номера запрашиваемой страницы из URL и добавим его в запрос WordPress в требуемом формате. Опять же в файл functions.php добавим код:

Что делать если нет доступа к function.php или не знаю что это?!

В этом случае вы можете использовать плагин Category pagination fix Но лично я не очень люблю использовать плагины там, где можно что то сделать самому =)

4 комментария

  1. Все сделал по инструкции, пагинация в категориях заработала, но на главной сломалась ((( Урл меняет, а контент выводится с главной. Подскажите пожалуйста, как починить ?

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *