Webamator Blog

Делаем постраничную навигацию
MENU
Home » wordpress » Делаем постраничную навигацию

Делаем постраничную навигацию

На данную статью меня натолкнули рассуждения Graf-а об излишней навороченности некоторых плагинов для WordPress. Полностью согласившись с автором в безмысленности громоздких WP Page Numbers или Page Navi, я решил реализовать собственную постраничную навигацию.

Что должна предоставлять посетителю постраничная навигация? Во-первых, это номера страниц, на которые он захочет перейти (1,2,3 и так далее). Во-вторых, обеспечить переходы на следующую и предыдущую страницу. В третьих, быстрый переход на первую и последнюю страницу сайта.

Для перехода на следующую и предыдущую я не стал изобретать велосипед и воспользовался встроенной функцией WordPress posts_nav_link. Сама навигация реализована очень просто – получаем общее количество страниц, затем в цикле выводим необходимые ссылки. В итоге вот что у меня получилось, действующий пример можете увидеть в этом блоге.


<strong>
<?php posts_nav_link(' &amp;amp;amp;#8212; ', __('← предыдущая страница'), __('следующая страница→')); ?>
</strong><br />
<?php $max_page = $wp_query->max_num_pages;
$nump=5;
if($max_page!=1){
$paged = intval(get_query_var('paged'));
if(empty($paged) || $paged == 0) $paged = 1;
if($paged!=1) echo '<a href="'.get_pagenum_link(1).'">&laquo; Первая</a> ';
if($paged-$nump>1) $start=$paged-$nump; else $start=1;
if($paged+$nump<$max_page) $end=$paged+$nump; else $end=$max_page-1;
if($start>2) echo "... ";
for ($i=$start;$i<=$end+1;$i++)
{
if($paged!=$i) echo '<a href="'.get_pagenum_link($i).'">'.$i.'</a> ';
else echo '<span class="current">'.$i.'</span> ';
}
if($end<$max_page-1) echo "... ";
if($paged!=$max_page) echo '<a href="'.get_pagenum_link($max_page).'">Последняя &raquo;</a>';
}
?>

Popularity: 28%

Добавлено 23 марта 2009
Рубрика: wordpress, Рекомендую
Метки: , ,

Если данный пост показался вам полезным или интересным, нажмите на одну из кнопок ниже - от vkontakte, facebook, tweeter или google+, чтобы о нем узнали ваши друзья. Спасибо!

Также рекомендую публикации, похожие на "Делаем постраничную навигацию"

Подключение JS только там, где это необходимо

Один из методов ускорения скорости загрузки сайтов на вордпресс – подключение дополнительных файлов только там, где это необходимо. Если судить по тем сайтам, которые меня просили оптимизировать, проблема достаточно [...]

SLON – пример плагина

Повторное подключение JavaScript приводит к его повторному выполнению, то есть к проблеме производительности сайта. Кроме того, это может привести к неприятным побочным эффектам – например, если данный скрипт [...]

Single Load Only. Избавляемся от дублирования js

В данной статье я расскажу об одной из проблем Wordpress – повторному подключению javascript. Подключение скрипта несколько раз приводит к его повторному выполнению, т.е. страдает производительность. Кроме того, [...]

Что нового в WordPress 4.8

WordPress Version 4.8, названная «Evans» в честь джазового пианиста и композитора Уильяма Джона «Bill» Evans, доступна для загрузки или обновления на панели инструментов WordPress 8 июня 2017 года. [...]

9 комментариев

  • Павел пишет:

    Спасибо. Работает.
    Только в коде аперсанды автозаменились “&amp;amp;raquo;” нв спецсимолы…

  • Сергей пишет:

    Спасибо.

    Работает.

    Только вот эта строка:

    отображается вот так:
    ← предыдущая страница &#8212; следующая страница→

    немного изменив:

    стало отображаться так:
    ← предыдущая страница — следующая страница→

  • KinoMan пишет:

    Спасибо, слегка облегчил, и получилось тупо выводит все страницы, для СЕО хорошо, все страницы становятся второго уровня

  • Will пишет:

    Добрый день! А куда этот код нужно добавить?

    • t3s пишет:

      туда где хочется видеть пагинацию – кому-то нравится внизу страницы, кому-то вверху, а кому-то и вверху и внизу
      что касается файлов – обычно это index.php, но в некоторых щаблонах может быть category.php или archive.php – т.е. зависит от шаблона

9 комментариев


RSS feed for comments on this post.

Leave a comment