PageNavi

Рубрика: WordPress - Статьи по CMS

Здравствуйте, уважаемые посетители сайта okITgo.ru! Продолжу рассказывать о полезных плагинах WordPress. Сегодня хочу описать плагин PageNavi, который позволяет в значительной степени улучшить функциональность и внешний вид стандартной навигации системы управления контентом WordPress.


Итак, плагин PageNavi добавляет к Вашему блогу расширенную и легко настраиваемую страничную навигацию.

Если стандартный вид навигации WordPress выглядит примерно так:

Стандартная Навигация WordPress Пример 1

Стандартная Навигация WordPress Пример 2

то панель навигации PageNavi имеет гораздо более привлекательный вид (здесь примеры стиля панели навигации по умолчанию, но ее оформление можно изменить на ваше усмотрение – см. ниже):

Панель Навигации 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 include IDE_PATH.’layouts/blog.php'; ?>
</div><!– 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:

Навигация 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 - Стиль по-умолчанию

принял вид:

Панель Навигации PageNavi - Стиль у моего по-умолчанию

Так что можете настроить оформление навигации PageNavi так, как Вам больше нравится.

Спасибо за внимание! До новых встреч на сайте okITgo.ru.

Отзывов (6) на «PageNavi»

  1. Артём пишет:

    Спасибо! пригодилось, только местами поменял коечто:
    В условие else поставил

    а в if -мой найденый кусок кода…
    по другому почему-то не работало.
    и кстати в версии вордпрес 3.5(русской) изменений достаточно в одном файле – loop.php

  2. Николай пишет:

    Пожалуйста! Главное заставить работать. Если заработало – значит сделали все правильно. Конечно, wordpress развивается – с одной стороны это конечно радует, с другой – приходится после каждого обновления проверять работоспособность – иногда некоторые плагины перестают работать, иногда еще что-нибудь. Тут уже приходится залазить внутрь и ковыряться в коде :-)

  3. Ирина пишет:

    Огромное спасибо за урок, всё толково и внятно, я реализовала на блоге навигацию за 5 минут благодаря Вам

  4. Dzianis пишет:

    Здравствуйте. А если такая проблема. Есть статическая страница (главная) со списком рубрик, как на ней настроить пагинацию? Ведь плагин, как я понял работает в категориях с записями…У меня в категории с записями он работает, а вот на главной никак не хочет. Сам сайт – rvideos.net Тема Solon

    • Николай пишет:

      Добрый день! Если в качестве главной у вас используется статическая страница, то плагин и не будет работать, поскольку он рассчитан на главную страницу с выводом анонсов статей.