PageNavi
Здравствуйте, уважаемые посетители сайта okITgo.ru! Продолжу рассказывать о полезных плагинах WordPress. Сегодня хочу описать плагин PageNavi, который позволяет в значительной степени улучшить функциональность и внешний вид стандартной навигации системы управления контентом WordPress.
Итак, плагин PageNavi добавляет к Вашему блогу расширенную и легко настраиваемую страничную навигацию.
Если стандартный вид навигации WordPress выглядит примерно так:
то панель навигации PageNavi имеет гораздо более привлекательный вид (здесь примеры стиля панели навигации по умолчанию, но ее оформление можно изменить на ваше усмотрение – см. ниже):
Если Вы заинтересованы в улучшении эстетики вашего WordPress-сайта и хотите изменить возможности навигации для ваших посетителей в лучшую сторону, то предлагаю ознакомиться с тем, как установить и настроить плагин PageNavi.
Установка плагина PageNavi
Сначала качаем плагин на официальном сайте WordPress, нажав в открывшейся странице кнопку “Download Version 2.82″ (это версия на момент написания статьи, возможно, когда Вы будете читать этот пост, версия изменится).
Из скачанного архива “wp-pagenavi.2.82.zip” извлекаем папку “wp-pagenavi”, содержимое которой должно быть примерно таким:
- lang\
- scb\
- admin.php
- core.php
- pagenavi-css.css
- readme.txt
- screenshot-1.png
- screenshot-2.png
- wp-pagenavi.php
Далее копируем эту папку (wp-pagenavi) в директорию движка с плагинами:
wp-content\plugins\ |
Затем активируем плагин в админке (щелкаем пункт меню “Плагины”, находим плагин “Список страниц”, нажимаем “Активировать” прямо под названием плагина)
Модификация Шаблонов – Добавление Вызова Функции wp_pagenavi
Открываем директорию текущей темы движка WordPress:
wp-content\themes\<НАЗВАНИЕ ТЕМЫ>\ |
и добавляем код вызова функции wp_pagenavi в шаблоны INDEX, ARCHIVE, SEARCH
Меняем Вид Навигации для Главной Страницы
У меня шаблон INDEX содержит следующий код:
<?php get_header(); ?>
<div id=”content”> <?php ide_sidebar(); ?> <?php get_footer(); ?> |
Т.е. за формирование содержимого главной страницы по сути отвечает шаблон BLOG, соответственно, вносить изменения надо в него, а не в INDEX. Из кода видно, что шаблон BLOG лежит в поддиректории темы “layouts/”
Открываем на редактирование шаблон BLOG (может быть у Вас INDEX – в зависимости от темы), ищем фрагмент кода, отвечающей за вывод стандартной навигации WordPress, у меня к примеру это кусок кода:
<div class=”pagination”> <div class=”alignleft”><?php next_posts_link(‘« Предыдущая страница’) ?></div> <div class=”alignright”><?php previous_posts_link(‘Следующая страница »’) ?></div> <div class=”clear”> </div> </div> |
Меняем этот кусок на следующий (пример для моей темы, у Вас фрагмент, отвечающий за вывод стандартной навигации WP – выделен красным цветом – будет отличаться, т.е. вместо приведенного в примере “красного” кода Вы должны вставить тот, который нашли в своем шаблоне):
<?php if(function_exists(‘wp_pagenavi’)) { ?> <div class=”wp-pagenavi”> <?php wp_pagenavi(); ?> </div> <?php } else {?> <div class=”pagination”> <div class=”alignleft”><?php next_posts_link(‘« Предыдущая страница’) ?></div> <div class=”alignright”><?php previous_posts_link(‘Следующая страница »’) ?></div> <div class=”clear”> </div> </div> <? } ?> |
Этот код проверяет наличие функции wp_pagenavi, существование которой говорит о том, что плагин pagenavi установлен и активирован, далее, если эта функция существует, то отображается навигация плагина, если нет – то стандартная навигация WP.
Сохраняем изменения в шаблоне INDEX (у меня BLOG) и открываем главную страницу сайта: вместо приведенных выше примеров отображения стандартной навигации WordPress должна появиться панель навигации, реализуемая плагином pagenavi:
Меняем Вид Навигации для Страницы Рубрик
Теперь аналогичные действия проделываем с шаблоном ARCHIVE, который, в частности, отвечает за конкретную рубрику (категорию). Открываем данный шаблон (лежит в директории текущей темы) и ищем кусок кода, отвечающий за вывод навигации. У меня по аналогии с шаблоном INDEX, часть содержимого страницы рубрик генерируется в шаблоне BLOG2, который подключается в шаблоне ARCHIVE посредством include, так что в моем случае редактировать пришлось его. Далее все по аналогии с шаблоном INDEX (у меня по аналогии с шаблоном BLOG) – модифицируем код отображения навигации – как было описано выше. Затем сохраняем изменения и проверяем, зайдя в одну из рубрик (в которой должно быть достаточно статей, чтобы они не входили на одну страницу, это количество статей на одной странице указывается в настройках движка) и смотрим, что навигация теперь реализуется плагином pagenavi.
Меняем Вид Навигации для Результатов Поиска
В результатах поиска при количестве найденных статей, превышающем максимальное количество статей для одной страницы, также появлются ссылки навигации. Соответственно, в шаблоне SEARCH, отвечающем результаты поиска, также необходимо модифицировать кусок кода вывода навигации. У меня в файле search.php шаблона SEARCH по аналогии с шаблонами INDEX и ARCHIVE, подключается еще один шаблон “layouts\list.php”, в котором и “сидит” этот кусок кода, так что редактировать необходимо его (в других темах, как правило, отображение навигации реализуется в самом шаблоне SEARCH). Редактирование здесь делается точно также, как описано выше для шаблонов INDEX и ARCHIVE.
Настройка PageNavi
Заходим в админку, кликаем пункт меню “Настройки”, в раскрывшемся подменю щелкаем на пункте “Список страниц”. Откроется форма с настройками следующего вида (здесь приведены настройки по умолчанию):
Шаблоны списка страниц
Совет: Если Вы оставите какое-то поле пустым, то и в страничной навигации оно не будет отображаться.
Шаблон общего списка страниц | |
---|---|
Элемент «Текущая страница» | |
Элемент «Страница» | |
Элемент «Первая страница» | |
Элемент «Последняя страница» | |
Элемент «Предыдущая страница» | |
Элемент «Следующая страница» | |
Элемент «Предыдущие…» | |
Элемент «Следующие…» |
Настройки списка страниц
Использовать стиль pagenavi-css.css | |
---|---|
Стиль списка страниц | |
Всегда показывать список страниц | |
Кол-во страниц для показа | |
Диапозон страниц для показа | |
Коэффициент для диапазонов страниц |
Думаю с настройками все понятно, поскольку каждое поле подписано. У себя к примеру я внес следующие изменения:
- “Шаблон общего списка страниц” = “%CURRENT_PAGE% из %TOTAL_PAGES%” (чтобы убрать слово “Страница” из фразы “Страница n из m”, где n – текущая страница, m – общее количество страниц)
- “Диапозон страниц для показа” = “0” (чтобы отключить диапазон страниц и не выводить “далекие” страницы)
Если Вы также что-либо поменяли, не забудьте нажать кнопку “Сохранить изменения”
Стиль Списка Страниц PageNavi
Для изменения стиля панели навигации PageNavi открываем и вносим изменения в файл таблицы стилей pagenavi-css.css, который лежит в папке плагина:
wp-content\plugins\wp-pagenavi\ |
Исходный файл таблицы стилей PageNavi я модифицировал так, что стиль панели навигации по умолчанию:
принял вид:
Так что можете настроить оформление навигации PageNavi так, как Вам больше нравится.
Спасибо за внимание! До новых встреч на сайте okITgo.ru.
Спасибо! пригодилось, только местами поменял коечто:
В условие else поставил
а в if -мой найденый кусок кода…
по другому почему-то не работало.
и кстати в версии вордпрес 3.5(русской) изменений достаточно в одном файле – loop.php
Пожалуйста! Главное заставить работать. Если заработало – значит сделали все правильно. Конечно, wordpress развивается – с одной стороны это конечно радует, с другой – приходится после каждого обновления проверять работоспособность – иногда некоторые плагины перестают работать, иногда еще что-нибудь. Тут уже приходится залазить внутрь и ковыряться в коде
Огромное спасибо за урок, всё толково и внятно, я реализовала на блоге навигацию за 5 минут благодаря Вам
Полжалуйста! Рад, что статья пригодилась )))
Здравствуйте. А если такая проблема. Есть статическая страница (главная) со списком рубрик, как на ней настроить пагинацию? Ведь плагин, как я понял работает в категориях с записями…У меня в категории с записями он работает, а вот на главной никак не хочет. Сам сайт – rvideos.net Тема Solon
Добрый день! Если в качестве главной у вас используется статическая страница, то плагин и не будет работать, поскольку он рассчитан на главную страницу с выводом анонсов статей.