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

31.05.2013

Для того чтобы сделать постраничную пагинацию без плагина WP-PageNavi в WordPress нужно в файл functions.php добавить такие строки

/*pagenav*/
function wp_corenavi() {
  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 = 1; //1 - выводить текст "Страница N из N", 0 - не выводить
  $a['mid_size'] = 3; //сколько ссылок показывать слева и справа от текущей
  $a['end_size'] = 1; //сколько ссылок показывать в начале и в конце
  $a['prev_text'] = '«'; //текст ссылки "Предыдущая страница"
  $a['next_text'] = '»'; //текст ссылки "Следующая страница"

  if ($max > 1) echo '<div class="navigation">';
  if ($total == 1 && $max > 1) $pages = '<span class="pages">Страница ' . $current . ' из ' . $max . '</span>'."\r\n";
  echo $pages . paginate_links($a);
  if ($max > 1) echo '</div>';
}

Затем в место вывода нумерации страниц ставим такой код:

<?php if (function_exists('wp_corenavi')) wp_corenavi(); ?>

По итогу на странице получаем такой исходный HTML-код, которому уже можно присваивать любые css-стили:

<div class="navigation">
  <span class="pages">Страница 7 из 27</span>
  <a class='prev page-numbers' href='http://wordpress31/page/6/'>&laquo; Предыдущая</a>
  <a class='page-numbers' href='http://wordpress31/page/1/'>1</a>
  <span class='page-numbers dots'>...</span>
  <a class='page-numbers' href='http://wordpress31/page/4/'>4</a>
  <a class='page-numbers' href='http://wordpress31/page/5/'>5</a>
  <a class='page-numbers' href='http://wordpress31/page/6/'>6</a>
  <span class='page-numbers current'>7</span>
  <a class='page-numbers' href='http://wordpress31/page/8/'>8</a>
  <a class='page-numbers' href='http://wordpress31/page/9/'>9</a>
  <a class='page-numbers' href='http://wordpress31/page/10/'>10</a>
  <span class='page-numbers dots'>...</span>
  <a class='page-numbers' href='http://wordpress31/page/27/'>27</a>
  <a class='next page-numbers' href='http://wordpress31/page/8/'>Следующая &raquo;</a>
</div>

Весь код взял со статьи Dimox’a Постраничная навигация в WordPress без плагина (альтернатива WP-PageNavi)

Не уходи, пока не прочитаешь:

Оставить комментарий