Постраничная навигация WordPress без плагина

Рубрика: WordPress

Если вас не устраивает или не нравится стандартная организация постраничной навигации на WordPress, то можно заменить его на более привычный и удобный для пользователей постраничную навигацию без плагина, для этого в файл functions.php добавим следующий код:

 

function navigation() {
global $wp_query, $wp_rewrite;
$pages = '';
$max = $wp_query->max_num_pages;
if (!$current = get_query_var('paged')) $current = 1;
$a['base'] = str_replace(999999999, '%#%', get_pagenum_link(999999999));
$a['total'] = $max;
$a['current'] = $current;
$total = 0; //1 - выводить текст "Страница N из N", 0 - не выводить
$a['mid_size'] = 2; //сколько ссылок показывать слева и справа от текущей
$a['end_size'] = 5; //сколько ссылок показывать в начале и в конце
$a['prev_text'] = '« Предыдущая '; //текст ссылки "Предыдущая страница"
$a['next_text'] = 'Следующая »'; //текст ссылки "Следующая страница"
if ($max > 1) echo '<div>';
if ($total = 1 && $max > 1) $pages = '<span>Страница ' . $current . ' из ' . $max . '</span>'."\r\n";
echo $pages . paginate_links($a);
if ($max > 1) echo '</div>';
}

Далее меняем стандартный код вывода на наш во всех шаблонах где есть навигация это  index.php, category.php, archive.php, search.php

Вставляем вместо:

next_posts_link('« Ранее');
previous_posts_link('Позже »');

этот код:

<div class="navig"><?php navigation(); ?></div>

в файл с css кодом добавляем новые стили

.navig {
padding:15px 0 25px 0;
overflow:hidden;
font-size:13px;
color:#000;
clear:both;}

.navig a{background: #fff;
border: 1px solid #DDDDDD;
color: #000000;
font-size: 13px;
padding:5px;
text-decoration: none;}

.navig span.pages {padding: 3px 5px;
background:#f1f8f9;
border: 1px solid #C6D2D4;}

.navig a:hover{background: #fff;
border: 1px solid red;
color:red;
font-size: 13px;
text-decoration: none;}

.navig span.pages {padding: 3px 5px;
background:#f1f8f9;
border: 1px solid #C6D2D4;}

.navig span.current {background: #fff;
border: 1px solid #111;
font-size: 13px;
padding:5px;
text-decoration: none;}

.navig span.extend {padding: 3px 5px;
background:#f1f8f9;
border: 1px solid #C6D2D4;}

.str{background: #fff;
color: #000000;
font-size: 13px;
padding: 5px;
text-decoration: none;}

P.S.: Если вам не очень понятно что здесь описано или попросту лень то не мучайтесь и создайте навигацию при помощи популярного плагина WP-PageNavi скачать тут (_http://wordpress.org/plugins/wp-pagenavi/)
или же плагином WP Page Numbers эти плагины можно также найти и установить из самой CMS в разделе "Плагины".



Теги:


Поделись с друзьями:

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

комментариев 6 для записи Постраничная навигация WordPress без плагина

  1. zaratustra:

    Спасибо, но стили не подходят или их нужно не туда вставлять.

    • bortvlad:

      zaratustra стили вы можете в ставить в любой файл style.css или ваш собственный не имеет значение, главное чтобы он был подключен на странице.

  2. Павел:

    Спасибо! Давно искал!

  3. Jokerson:

    Проблема в том, что вы забыли подставить class в div. Это можно сделать или в div’е внутри самой функции или в обрамляющем и тогда со стилями будет порядок.

    Поправьте пожалуйста пост, автор.

  4. Сергей:

    Отличная статья! Спасибо.




*