WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

the_posts_pagination()WP 4.1.0

Выводит на экран ссылки пагинации на след./пред. сет постов. Используется на страницах архивов (рубрики, метки, ...).

ссылки пагинации в теме Twenty Fifteen

Функция рассчитана на использования с любым типом записей.

Чтобы получить результат для обработки, используйте get_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(), поэтому полный список параметров, смотрите в её описании.
По умолчанию: предустановки

Примеры

15

#1 Вывод пагинации на экран

<?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>

Ссылки пагинации в теме Twenty Fifteen

12

#2 Управление отображением

По умолчанию the_posts_pagination() выводит первую и последнюю страницу и по одной странице около текущей. Остальные заменяются многоточием. Этот вывод можно изменить с помощью аргументов:

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

<?php
the_posts_pagination( array(
	'mid_size' => 2,
) );
?>

Ссылки пагинации в теме Twenty Fifteen

2

#3 параметр end_size

Установим 2 ссылки на последние страницы в пагинации:

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

Ссылки пагинации в теме Twenty Fifteen

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() WP 6.5.2

function the_posts_pagination( $args = array() ) {
	echo get_the_posts_pagination( $args );
}
36 комментариев
Полезные 3Вопросы 1 Все
    Войти