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

Для того чтобы сделать постраничную пагинацию без плагина 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='###/page/6/'>&laquo; Предыдущая</a>
  <a class='page-numbers' href='###/page/1/'>1</a>
  <span class='page-numbers dots'>...</span>
  <a class='page-numbers' href='###/page/4/'>4</a>
  <a class='page-numbers' href='###/page/5/'>5</a>
  <a class='page-numbers' href='###/page/6/'>6</a>
  <span class='page-numbers current'>7</span>
  <a class='page-numbers' href='###/page/8/'>8</a>
  <a class='page-numbers' href='###/page/9/'>9</a>
  <a class='page-numbers' href='###/page/10/'>10</a>
  <span class='page-numbers dots'>...</span>
  <a class='page-numbers' href='###/page/27/'>27</a>
  <a class='next page-numbers' href='###/page/8/'>Следующая &raquo;</a>
</div>

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

Установка плагина SyntaxHighlighter Evolved на WordPress

Установка плагина SyntaxHighlighter Evolved на WordPress Плагин устанавливается в Вордпресс стандартным способом, а именно: распакуйте…

Как убрать отступ в 32px для админбара сверху страницы для авторизованного пользователя

В общем, задача такая — убрать базовые стили, которые задаются самим движком CMS WordPress для…

Если на новом сайте не загружаются медиа с ошибкой «Unable to create directory wp-content/uploads/»

Итак, сайт новый, только развернули, каталог wp-content/uploads/ даже не создан. При загрузке изображений выдается ошибка…

Как добавить noindex, follow для страниц пагинации при использовании Yoast SEO

Задача — запретить индексировать поисковиками страниц пагинации, то есть чтобы первая страница категории была открыта…

Ответить