Всем привет. Сегодня я вам расскажу, как делается в wordpress постраничная навигация без плагина и без всякой лишней нагрузки на систему. Все настолько просто, что даже говорить особо не о чем. Все что вам нужно — это движок wordpress версии 4.1 или выше, а также ftp-доступ к вашему сайту, чтобы немного поменять код одного из файлов.
Делаем постраничную навигацию одной строчкой кода
Во-первых, вам нужно найти все php-шаблоны, на которых нужна такая навигация. В большинстве тем такой файл называется archive.php
или category.php
. В моем случае первый вариант. Именно этот шаблон отвечает за вывод всех записей за какой-то период времени, либо записей из определенной рубрики.
В нем вы можете увидеть стандартный цикл wordpress, который отвечает за вывод постов. Он начинается словами: while (have posts())
и заканчивается ключевым словом endwhile
. Так вот сразу после него и нужно вставить нашу постраничную навигацию, а делается это очень просто, всего лишь нужно написать вот что:
<?php the_posts_pagination() ?>
Это функция, которая появилась в движке с версии 4.1 и она как раз отвечает за вывод постраничной навигации. На скриншоте вы можете увидеть, как я вставил это в свой шаблон:
Также хочу отметить, что этот кусок кода нужно вставить в 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 возможных параметра:
show_all
— вывести вообще все страницы. Не рекомендуется, если у вас их больше десяти.end_size
— число страниц в начале и конце списка с навигацией.mid_size
— число страниц, которые находятся слева и справа от активной, то есть текущей.
Как записать и определить параметры? Можно массивом. Делается это так:
<?php the_posts_pagination( array( 'end_size' => 3 ) ); ?>
Таким образом, будет установлено по три ссылки для перехода на первые и последние 3 страницы. Через запятую вы можете записать второй и третий параметр. В общем, ничего сложного.
Итак, сегодня мы сделали постраничную навигацию на сайте wordpress без установки дополнительных плагинов. На этом у меня все, до встречи в других статьях.
Интересно! Нужно попробовать на своем тестовом сайте. Спасибо Михаил!!!