get_the_posts_pagination() WP 4.1.0

Отримує посилання пагінації на слід. сет постів. Використовується на сторінках архівів (рубрики, мітки).

Наприклад, якщо на сторінці виводиться по 10 записів і в рубриці всього 50 записів, get_the_posts_pagination() виведе посилання на 5 сторінок:

Посилання пагінації у темі Twenty Fifteen
Посилання пагінації у темі Twenty Fifteen

Щоб вивести результат на екран, використовуйте the_posts_pagination() .

Працює на основі:
paginate_links() ,
_navigation_markup()
Основа для:
the_posts_pagination()

Хуків немає.

Повертає

Строку. HTML код посилань пагінації. Якщо сторінок пагінації немає, то поверне порожній рядок.

Використання

get_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' ),
	'aria_label' => __( 'Posts' ), ​​// aria-label="" для nav елемента. З WP 5.3
	'class' => 'pagination', // class="" для елемента nav. З WP 5.5
);

Параметр передається до функції paginate_links() , тому повний список аргументів дивіться там.
За замовчуванням: попереднє встановлення

Приклади

0

#1 Виводимо посилання пагінації

Допустимо, нам потрібно на сторінці архівів вивести посилання пагінації на мережі постів (/page/1, /page/2), тоді з версії 4.1 ми можемо використовувати такий код:

<?php echo get_the_posts_pagination(); ?>

Поверне:

<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://example.com/page/2/"><span class="meta-nav screen-reader-text">Сторінка </span>2</a >
		<span class="page-numbers dots">…</span>
		<a class="page-numbers" href="http://example.com/page/86/"><span class="meta-nav screen-reader-text">Сторінка </span>86</a >
		<a class="page-numbers" href="http://example.com/page/87/"><span class="meta-nav screen-reader-text">Сторінка </span>87</a >
		<a class="next page-numbers" href="http://example.com/page/2/">Наступна сторінка</a>
	</div>
</nav>

список змін

З версії 4.1.0Введено.
З версії 5.3.0Added aria_label parameter.
З версії 5.5.0Added the class parameter.

Код get_the_posts_pagination() WP 6.0.2

function get_the_posts_pagination( $args = array() ) {
	$navigation = '';

	// Не print empty markup if there's only one page.
	if ( $GLOBALS['wp_query']->max_num_pages > 1 ) {
		// Make sure the nav element has aria-label attribute: fallback to the screen reader text.
		if ( ! empty( $args['screen_reader_text'] ) && empty( $args['aria_label'] ) ) {
			$args['aria_label'] = $args['screen_reader_text'];
		}

		$args = wp_parse_args(
			$args,
			array(
				'mid_size' => 1,
				'prev_text' => _x( 'Previous', 'previous set of posts' ),
				'next_text' => _x( 'Next', 'next set of posts' ),
				'screen_reader_text' => __( 'Posts navigation' ),
				'aria_label' => __( 'Posts' ),
				'class' => 'pagination',
			)
		);

		// Make sure we get a string back. Plain is the next best thing.
		if ( isset( $args['type'] ) && 'array' === $args['type'] ) {
			$args['type'] = 'plain';
		}

		// Set up paginated links.
		$links = paginate_links($args);

		if ( $links ) {
			$navigation = _navigation_markup( $links, $args['class'], $args['screen_reader_text'], $args['aria_label'] );
		}
	}

	return $navigation;
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *