the_posts_pagination()
Выводит на экран ссылки пагинации на след./пред. сет постов. Используется на страницах архивов (рубрики, метки, ...).
Функция рассчитана на использования с любым типом записей.
Чтобы получить результат для обработки, используйте get_the_posts_pagination().
Хуков нет.
Возвращает
null
. Ничего. Выводит на экран HTML код пагинации. Если страниц пагинации нет (меньше 1), то ничего не выведет.
Использование
the_posts_pagination( $args );
- $args(массив)
Параметры по которым будет выводиться результат. По умолчанию:
$args = array( 'show_all' => false, // показаны все страницы участвующие в пагинации 'end_size' => 1, // количество страниц на концах 'mid_size' => 1, // количество страниц вокруг текущей 'prev_next' => true, // выводить ли боковые ссылки "предыдущая/следующая страница". 'prev_text' => __('« Previous'), 'next_text' => __('Next »'), 'add_args' => false, // Массив аргументов (переменных запроса), которые нужно добавить к ссылкам. 'add_fragment' => '', // Текст который добавиться ко всем ссылкам. 'screen_reader_text' => __( 'Posts navigation' ), 'class' => 'pagination', // CSS класс, добавлено в 5.5.0. );
$args передается в функцию paginate_links(), поэтому полный список параметров, смотрите в её описании.
По умолчанию: предустановки
Примеры
#1 Управление отображением
По умолчанию the_posts_pagination() выводит первую и последнюю страницу и по одной странице около текущей. Остальные заменяются многоточием. Этот вывод можно изменить с помощью аргументов:
show_all
— показывать все страницы
end_size
— количество страниц в начале и конце списка
mid_size
— количество страниц слева и справа от текущей страницы
<?php the_posts_pagination( array( 'mid_size' => 2, ) ); ?>
#2 Вывод пагинации на экран
<?php the_posts_pagination(); ?>
Выведет:
<nav class="navigation pagination" aria-label="Записи"> <h2 class="screen-reader-text">Навигация по записям</h2> <div class="nav-links"> <span aria-current="page" class="page-numbers current">1</span> <a class="page-numbers" href="https://site.example/news/page/2/">2</a> <span class="page-numbers dots">…</span> <a class="page-numbers" href="https://site.example/news/page/7/">7</a> <a class="next page-numbers" href="https://site.example/news/page/2/">Далее</a> </div> </nav>
#3 параметр end_size
Установим 2 ссылки на последние страницы в пагинации:
<?php the_posts_pagination( array( 'end_size' => 2, ) ); ?>
#4 Удаляем заголовок H2 из шаблона
По умолчанию шаблон пагинации содержит скрытый тег H2, который добавляется для скринридеров (это проги для слабовидящих, которые помогают на звук орриентироваться на странице сайта).
С точки зрения SEO этот тег, вроде бы, лучше убрать. Сделать это можно с помощью фильтра navigation_markup_template:
// удаляет H2 из шаблона пагинации add_filter('navigation_markup_template', 'my_navigation_template', 10, 2 ); function my_navigation_template( $template, $class ){ /* Вид базового шаблона: <nav class="navigation %1$s" role="navigation"> <h2 class="screen-reader-text">%2$s</h2> <div class="nav-links">%3$s</div> </nav> */ return ' <nav class="navigation %1$s" role="navigation"> <div class="nav-links">%3$s</div> </nav> '; } // выводим пагинацию the_posts_pagination( array( 'end_size' => 2, ) );
Список изменений
С версии 4.1.0 | Введена. |
Код the_posts_pagination() the posts pagination WP 6.7.1
function the_posts_pagination( $args = array() ) { echo get_the_posts_pagination( $args ); }