Плагин WP-PageNavi. Постраничная навигация
Добрый день, уважаемые читатели. Сегодня пишу о плагине для вывода постраничной навигации WP-PageNavi. Этот плагин входит в список тех, которые рекомендуется ставить сразу после установки WordPress, но я оттянул установку на 3 месяца. И вот, как говорится, приспичило и мне установить плагин WP-PageNavi. Почему? Просто, количество постов перевалило за число выводимых на странице. WP-PageNavi является самым простым распространенным решением, поэтому я выбрал именно его.
Как установить плагин WP-PageNavi?
Устанавливаем плагин WP-PageNavi. Открываем код шаблона нашей темы. Пишем следующий код в то место, где собираетесь выводить постраничную навигацию:
1 |
<?php wp_pagenavi(); ?> |
Не работает пагинация
Постраничная навигация появилась, но при переходе на 2 и последующие страницы я продолжал видеть те же посты.
Потратив пол вечера, я просмотрел много блогов и форумов и нашел решение проблемы. Для выборки постов используется функция query_posts(), которая идет до функции wp_pagenavi(). Изначально у меня было записано:
1 |
<?php query_posts('cat=19&showposts=10'); ?> |
Нужно исправить этот код на следующий:
1 |
<?php query_posts("$query_string.&posts_per_page=6&paged=$page&cat=19"); ?> |
После внесенных правок у меня все заработало: и постраничная навигация, и вывод постов.
Но я рано стал праздновать победу. Так как постов у меня на блоге мало, на страницах рубрик вторая страница еще не появляется. Я проверил на главной и успокоился. Случайным образом обнаружил, что на внутренних страницах постраничная навигация, по прежнему, не работает. Просидев еще вечер в сети, уведел следующее решение. Вместо строки:
1 |
<?php query_posts("$query_string.&posts_per_page=6&paged=$page&cat=19"); ?> |
Добавляем такой код:
1 |
<?php query_posts( array('cat'=>19, 'paged'=>get_query_var('paged'), 'posts_per_page'=>'6' ) ); ?> |
Теперь все проверил — все работает!
Плагин WP-PageNavi имеет гибкие настройки. Для доступа к настройкам достаточно перейти в раздел плагина в админке. Есть возможность использовать готовый файл стилей, который лежит по адресу plugins/wp-pagenavi/pagenavi-css.css, либо отключить его и применить свои стили, что я и сделал.
Из-за того, что я сразу не поставил этот плагин ничего критичного не произошло: всего лишь, на один вечер сдвинулись планы, но есть действия, которые необходимо сделать сразу после установки WordPress! Первым делом нужно настроить постоянные ссылки.
К сожалению на странице меток навигация не работает. Отображает только первую страницу, а при переходе на вторую и так далее выдаёт 404. И с плагином и с кодом не в какую.
Не подскажите как это исправить?
Не видя кода сложно что либо сказать.
Проверьте, настроены ли у вас постоянные ссылки, попробуйте отключить другие плагины и посмотреть что получится… причин очень много, здесь можно только гадать.
Спасибо за готовое решение, часов шесть провел в поиске решения проблемы. Везде где натыкался шло просто через $query_string. Но на WP 3.8 это ни в какую не помогало.
СПААААААСИБО дружище. Около 2 суток бился над проблемой. Дело в том что я на отдельной странице вывожу только записи из одной рубрики и то там то там не работала постраничная навигация. Много кодов использовал, но всё равно результат был один и тот же. А с вашим кодиком всё заработало как надо. Еще раз спасибо автору за ПОЛЕЗНЫЙ материал……
Удачи в ваших начинаниях….
Рад что нашли полезный материал 🙂
Сейчас пытаюсь на своем сайте про изучение иностранных языков настроить пагинацию, но на статичных страницах. Например, у меня есть статичная страница с faq, хотелось бы разбить ее на несколько, т.к. слишком длинная получается. Можно ли как-то это сделать? В шаблоне page.php вставляю указанный Вами код, но не появляется ничего.
Если страница статичная, то, как вариант, сделать статичную пагинацию. Т. е. вручную прописать ссылки на другие страницы.
никогда не оставляю комментарии, но тут так вовремя попалась мне эта статья!! а главное помогла! я так долго не знал,что у меня не работает переход по страницам нигде кроме главной, и тут прозрел и сразу нашел правильное решение.
Спасибо от души!!!!
не видно у вас ни одного кода!
как решить проблему с пагинацией на отдельном шаблоне?
оч. нужно!
Исправил.
о-О, спасибо, прям вовремя!
и… главное все так и было почти, только у меня было чуток по другому:
get_query_var(‘paged’), ‘cat’=>19, ‘posts_per_page’=>’6’ ) ); ?>
… т.е. порядок заданных параметров был «невпорядке»)))
Всего то: поменял два значения местами и все ЗАРАБОТАЛО!
———————————————————
Уф, от всей души СПАСИБО!!!
Я — новичок. Помогите, пожалуйста. Какой именно шаблон является основным? в index.php нету ничего похожего. У меня основная страница — она статичная, да? Вот мне ее надо разбить
У разных тем шаблоны разные. Попробуйте посмотреть в следующих: index.php, archive.php, category.php. Иногда есть content.php и его производные, тут нужно уже подробно искать в коде.
Екатерина, идите по адресу:
ваш-сайт.ru/wp-content/themes/
А далее выбираете папку с Вашей ТЕМОЙ и там уже ищете index.php
Здравствуйте. Не знаю актуальна тема или нет ? У меня такая же проблема. Пагинации на главной нет В рубриках все работает. В index.php Другие строки.
Честно парюсь уже 4 дня не могу найти вариантов при попытке заменить order на cat= происходит ошибка на главной .
подскажите как исправить.
Добрый вечер, Денис.
Для рубрик и главной разные файлы править надо, какие — зависит от конкретной темы (шаблона). Не факт что в index.php, посмотрите другие файлы.
Убедитесь, что в админке вы указали, что выводить на главной нужно последние посты, а не страницу.