get_the_posts_navigation()WP 4.1.0

Получает ссылки на следующую и предыдущую страницы постов. Используется на страницах архивов (метки, рубрики).

Такие ссылки можно получить с помощью функций get_next_posts_link() и get_previous_posts_link().

Чтобы получить ссылки навигации для отдельной записи используйте the_post_navigation().

Чтобы получить блок со ссылками пагинации, используйте функцию get_the_posts_pagination().

Основа для: the_posts_navigation()

Хуков нет.

Возвращает

Строку. Строку: HTML код на предыдущий и следующий сеты постов.

Использование

get_the_posts_navigation( $args );
$args(массив)

С помощью параметров передаваемых в массив prev_text и next_text, можно изменить текст ссылок. По умолчанию используется «Старые записи» и «Новые записи»:

$args = array(
	'prev_text'          => __( 'Older posts' ),
	'next_text'          => __( 'Newer posts' ),
	'screen_reader_text' => __( 'Posts navigation' ),
	'aria_label'         => __( 'Posts' ),             // WP 5.3
	'class'              => 'posts-navigation',        // WP 5.5
);

По умолчанию: array()

Примеры

0

#1 Выведем ссылки на предыдущий/следующий сет постов

the_posts_navigation( array(
	'prev_text'          => 'Предыдущие записи',
	'next_text'          => 'Следующие записи',
	'screen_reader_text' => 'Навигация',
) );

Этот код выведет:

<nav class="navigation posts-navigation" role="navigation">
	<h2 class="screen-reader-text">Навигация</h2>
	<div class="nav-links">
		<div class="nav-previous">
			<a href="http://example.com/page/3/">Предыдущие записи</a>
		</div>
		<div class="nav-next">
			<a href="http://example.com/">Следующие записи</a>
		</div>
	</div>
</nav>

Заметки

  • Global. WP_Query. $wp_query WordPress Query object.

Список изменений

С версии 4.1.0 Введена.
С версии 5.3.0 Added the aria_label parameter.
С версии 5.5.0 Added the class parameter.

Код get_the_posts_navigation() WP 6.5.2

function get_the_posts_navigation( $args = array() ) {
	global $wp_query;

	$navigation = '';

	// Don't print empty markup if there's only one page.
	if ( $wp_query->max_num_pages > 1 ) {
		// Make sure the nav element has an 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(
				'prev_text'          => __( 'Older posts' ),
				'next_text'          => __( 'Newer posts' ),
				'screen_reader_text' => __( 'Posts navigation' ),
				'aria_label'         => __( 'Posts' ),
				'class'              => 'posts-navigation',
			)
		);

		$next_link = get_previous_posts_link( $args['next_text'] );
		$prev_link = get_next_posts_link( $args['prev_text'] );

		if ( $prev_link ) {
			$navigation .= '<div class="nav-previous">' . $prev_link . '</div>';
		}

		if ( $next_link ) {
			$navigation .= '<div class="nav-next">' . $next_link . '</div>';
		}

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

	return $navigation;
}