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

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

function wp_corenavi() {
  global $wp_query, $wp_rewrite;
  $pages = '';
  $max = $wp_query->max_num_pages;
  if (!$current = get_query_var('paged')) $current = 1;
  $a['total'] = $max;
  $a['current'] = $current;
  $a['format'] = '?page=%#%';
  $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 = 'Страница ' . $current . ' из ' . $max . ''."\r\n";
  echo $pages . paginate_links($a);
  if ($max > 1) echo '</div>';
}

Настройки меняем прямо в коде функции, они прокомментированы.
В то место, где нужно вывести постраничную навигацию вставляем

if (function_exists('wp_corenavi')) wp_corenavi();

Далее по желанию можно добавить css стили для оформления блока навигации на странице, например

/* PAGE NAVIGATION */

.navigation {
 text-align: center;
 margin-bottom: 20px;
}

.navigation label {
 display: inline-block;
 margin-right: 15px;
}

.navigation .page-numbers {
 display: inline-block;
 margin: 0 2px;
 padding: 5px;
 border: #ccc 1px solid;
}

.navigation a.page-numbers:hover {
 background: #eee;
 text-decoration: none;
 border: #666 1px solid;
}

.navigation .page-numbers.current {
 background: #333;
 border: #333 1px solid;
 color:#fff;
}

.navigation .page-numbers.prev,
.navigation .page-numbers.next {
 border: #fff 1px solid;
}

На вид получается вот что

pagenav_wp

Статья оказалась полезной? Вырази благодарность - поделись в соцсетях

Отзывы : Один комментарий

  1. А как вообще удалить
    $a[‘prev_text’] = ‘«’; //текст ссылки «Предыдущая страница»
    $a[‘next_text’] = ‘»’; //текст ссылки «Следующая страница»

Комментирование отключено