Categories: Все о WordPress

Не работает навигация wordpress

Столкнулся сегодня с проблемой, когда не работает навигация на одном из сайтов вордпресс. Переходишь по страницам, а показывает одну и ту же страницу с записями. Думал дело в шаблоне (проверял на теме nerocity), но оказывается что многие сталкиваются с такой проблемой и на других шаблонах. Долго искал проблему, но я ее решил.

Все дело в запросе вывода записей — query_posts. Либо у вас в шаблоне он не правильно вызывается, либо вызывается несколько раз. Бывает когда этот запрос повторяется и последний «перебивает» первый, из-за чего и не работает навигация вордпресс.

Почему не работает навигация wordpress

Бывает еще неправильно заданы настройки в шаблоне вывода навигаций. Хочу отметить, что навигация может выводится стандартным способом (Далее, Назад), плагином wp-pagenavi или через функции темы. В первом случае достаточно наличие двух функций — next_posts_link и previous_posts_link. Например:

<div class=»nav-previous»><?php next_posts_link( __( ‘<span class=»meta-nav»>&larr;</span> Older posts’ ) ); ?></div>
<div class=»nav-next»><?php previous_posts_link( __( ‘Newer posts <span class=»meta-nav»>&rarr;</span>’ ) ); ?></div>

Во втором случае эти строки заменяются функцией wp-pagenavi, которая настраивается плагином. В третьей случае все зависит от темы и от того, как автор вызывает навигацию.

Если у вас правильно настроен плагин или стандартный вывод навигации, но она по-прежнему не работает, то стоит искать следующую функцию в файлах Вашего шаблона — query_posts.

В каких файлах настраивается навигация вордпресс

Обычно код навигации нужно настраивать в страницах index.php, archive.php, category.php и search.php. Часто делают так, что код нужно менять в одном месте, а уже оттуда он подтягиваться в вышеупомянутые файлы. Это файл loop.php, а в некоторых шаблонах — pagination.php. Если вам нужен код оригинального файла pagination.php в шаблоне nerocity — напишите, я его сброшу или выложу. Но проблема с навигацией не в нем. У меня проблема была в файле loop.php, когда я захотел выводить записи в обратном порядке. Я вызывал повторно query_posts, из-за чего был конфликт в коде.

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

Вставьте в файле loop.php (или index.php, category.php и т.д.) следующий код:

global $query_string;
query_posts( $query_string . ‘&order=DESC’ );

Не работает навигация вордпресс

Если вы хотите чтобы записи выводились в обратном порядке (новые в конце), то этот:

global $query_string;
query_posts( $query_string . ‘&order=ASC’ );

Но о записях в обратном порядке я напишу отдельный пост.

В общем, после того, как я поправил код, у меня заработала навигация и выводились те страницы, что надо.

veniamin

Recent Posts

Как заработать токен NOT за стейкинг BNB или FDUSD

Очень много разговоров в последнее время за токен NOT. Много бирж будут делать листинг токена,…

6 месяцев ago

Как заработать TON и NOT за стейкинг в телеграм

Телеграм недавно запустил возможность стейкать (замораживать) USDT и получать за это их валюту TON. Очень…

6 месяцев ago

Бонус 100 USDT +10 BUSD от Binance

Биржа криптовалют Binance проводит сейчас промо-акцию: новым пользователям дают ваучеры в сумме 110 долларов. Деньги…

3 года ago

Как парсить длительность видео youtube на php в привычном виде

Самый главный момент в работе с youtube - это получить ключ api через консоль разработчика…

3 года ago

Как удалить чужую сессию пользователя в ubuntu (linux)

Арендую сервер для небольшого проекта на python. И вот приходит мне уведомление, что за сутки…

3 года ago

Как наложить watermark на видео в python windows массово

Тестирую одну схему, и нужно на много видео наложить watermark. Решил делать через Python 3,…

3 года ago