Как сделать в 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 страницы. Через запятую вы можете записать второй и третий параметр. В общем, ничего сложного.

Да, это реклама, но надеюсь, она будет полезна вам. GetUniq это сервис для вебмастеров и всех работающих с трафиком людей, с помощью которого можно выгоднее пополнять счета в кабинетах рекламных сетей, таких как Яндекс.Директ, MyTarget, ВК Таргет и другие. Без использования сервиса вам придется заплатить 1180 рублей за пополнение счета в Директе на 1000, а используя возможности Getuniq за эти же 1180 на ваш счет поступит 1100-1200 рублей! То же самое для всех других сетей. Я сам уже начал использовать и порекомендовал всем знакомым вебмастерам, рекомендую и вам. При желании, по этой ссылке вы можете почитать мой обзор сервиса.

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

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

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

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