Пагинация WordPress

Авг 30 2017 Published by under WordPress

.

Пагинация — разбиение контента на страницы, нумерация их и удобная навигация по этим страницам, т. е. постраничная навигация.

Пагинация WordPress, которая встроена в CMS крайне неудобна и непрезентабельна.

Однако, в WordPress, начиная с версии 4.1, появилась функция для упрощения пагинации the_posts_pagination.

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

Теперь, чтобы вставить блок пагинации необходима всего одна строка.

<?php paginate_links(); ?>

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

show_all — показывать номера всех страниц
end_size — задать количество страниц в начале и конце списка
mid_size — задать количество страниц слева и справа от текущей страницы

Например, если нам надо отображать номера первой, второй, последней, предпоследней страниц и и вокруг текущей по три с каждой стороны то пишем такой код

the_posts_pagination( array(
    'end_size' => 2,
    'mid_size' => 3,
) );

Еще раз напомню, такую функцию поддерживают не все темы.

Если тема не поддерживает функцию paginate_links , поможет плагин WP Page Numbers. Установка стандартная. Сразу после активации доступны настройки

Здесь можно выбрать стиль, выбрать элементы навигации, которые будут отображаться и т. д.

В настройках вы также найдете код, который необходим для вывода работы плагина. Примерно такой

<?php if(function_exists('wp_page_numbers')) : wp_page_numbers(); endif; ?>

Чтобы плагин выводил пагинацию ищем код стандартной навигации

<p class=»newer-older»><?php posts_nav_link(‘ ‘,__(‘&#171; Следующие записи’, «voidy» ),__(‘Предыдущие записи &#187;’, «voidy» )) ?></p>

И заменяем его кодом плагина. Все, плагин работает

No responses yet

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

31 - столько SQL запросов к базе.
0,142089 - за столько сгенерировалась страница.