Как сделать в wordpress постраничную навигацию без плагина

Всем привет. Сегодня я вам расскажу, как делается в wordpress постраничная навигация без плагина и без всякой лишней нагрузки на систему. Все настолько просто, что даже говорить особо не о чем. Все что вам нужно — это движок wordpress версии 4.1 или выше, а также ftp-доступ к вашему сайту, чтобы немного поменять код одного из файлов.

Делаем постраничную навигацию одной строчкой кода

Во-первых, вам нужно найти все php-шаблоны, на которых нужна такая навигация. В большинстве тем такой файл называется archive.php или category.php. В моем случае первый вариант. Именно этот шаблон отвечает за вывод всех записей за какой-то период времени, либо записей из определенной рубрики.

В нем вы можете увидеть стандартный цикл wordpress, который отвечает за вывод постов. Он начинается словами: while (have posts()) и заканчивается ключевым словом endwhile. Так вот сразу после него и нужно вставить нашу постраничную навигацию, а делается это очень просто, всего лишь нужно написать вот что:

<?php the_posts_pagination() ?>

Это функция, которая появилась в движке с версии 4.1 и она как раз отвечает за вывод постраничной навигации. На скриншоте вы можете увидеть, как я вставил это в свой шаблон:
постраничная навигация без плагина в wp
Также хочу отметить, что этот кусок кода нужно вставить в html-тег div. Это не обязательно, но крайне желательно, чтобы вы могли позже обратиться к элементу через стили и оформить его. Например, на моем блоге она выглядит так:
внешний вид
По умолчанию же по-другому, но вы всегда можете настроить под себя, если разбираетесь в css. Если вам интересно, какой именно код выводит функция, то вот он:

<nav class="navigation pagination" role="navigation">
	<h2 class="screen-reader-text">Навигация по записям</h2>
	<div class="nav-links"><span class="page-numbers current"><span class="meta-nav screen-reader-text">Страница </span>1</span>
		<a class="page-numbers" href="http://site.ru/page/2/"><span class="meta-nav screen-reader-text">Страница </span>2</a>
		<span class="page-numbers dots">…</span>
		<a class="page-numbers" href="http://site.ru/page/28/"><span class="meta-nav screen-reader-text">Страница </span>28</a>
		<a class="page-numbers" href="http://site.ru/page/29/"><span class="meta-nav screen-reader-text">Страница </span>29</a>
		<a class="next page-numbers" href="http://site.ru/page/2/">Следующая страница</a>
	</div>
</nav>

Соответственно, по этим классам вы можете обращаться к элементам в css и стилизовать их. Исходный код функции находится: wp-includes/link-template.php примерно на 2510 строке. Вы можете изменить его. Например, изменить названия стилевых классов. Лично я удалил h2-заголовок «Навигация по записям» и больше ничего не трогал.

Параметры функции

По умолчанию параметры уже определены и вы можете без проблем писать функцию с пустыми круглыми скобками, то есть без всяких параметров. Однако, если вы хотите управлять количеством выводимых страниц, то придется их менять. Делается это легко, у функции 3 возможных параметра:

  1. show_all — вывести вообще все страницы. Не рекомендуется, если у вас их больше десяти.
  2. end_size — число страниц в начале и конце списка с навигацией.
  3. mid_size — число страниц, которые находятся слева и справа от активной, то есть текущей.

Как записать и определить параметры? Можно массивом. Делается это так:

<?php the_posts_pagination( array(
	'end_size' => 3 ) ); 
?>

Таким образом, будет установлено по три ссылки для перехода на первые и последние 3 страницы. Через запятую вы можете записать второй и третий параметр. В общем, ничего сложного.

Итак, сегодня мы сделали постраничную навигацию на сайте wordpress без установки дополнительных плагинов. На этом у меня все, до встречи в других статьях.

Платное/бесплатное по WordPress на других сайтах

Бесплатные уроки по созданию шаблона на WordPress

Платный курс по созданию шаблонов Wordpress

Платный курс по созданию плагинов Wordpress

Шикарный платный плагин для оптимизации WordPress сайта

Премиум шаблон для WordPress, сделанный для людей

Комментариев: 1
  1. Валерий

    Интересно! Нужно попробовать на своем тестовом сайте. Спасибо Михаил!!!

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: