Делаем постраничную навигацию
На данную статью меня натолкнули рассуждения Graf-а об излишней навороченности некоторых плагинов для WordPress. Полностью согласившись с автором в безмысленности громоздких WP Page Numbers или Page Navi, я решил реализовать собственную постраничную навигацию.
Что должна предоставлять посетителю постраничная навигация? Во-первых, это номера страниц, на которые он захочет перейти (1,2,3 и так далее). Во-вторых, обеспечить переходы на следующую и предыдущую страницу. В третьих, быстрый переход на первую и последнюю страницу сайта.
Для перехода на следующую и предыдущую я не стал изобретать велосипед и воспользовался встроенной функцией WordPress posts_nav_link. Сама навигация реализована очень просто - получаем общее количество страниц, затем в цикле выводим необходимые ссылки. В итоге вот что у меня получилось, действующий пример можете увидеть в этом блоге.
<strong>
<?php posts_nav_link(' &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).'">« Первая</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).'">Последняя »</a>';
}
?>
Popularity: 44%
Рубрика: wordpress, РекомендуюМетки: wordpress, плагины, шаблон
