WordPress как на ладони
Мощный и не дорогой хостинг от Fornex.com

get_the_post_navigation() WP 4.1.0

Получает ссылки (HTML) на следующую и предыдущую записи. Используется на странице отдельной записи: is_singular().

Хорошо подойдет для навигации между вложениями (прикрепленными картинками).

До версии 4.1. для вывода ссылок на предыдущий и следующий поста, нужно было использовать функции next_post_link() и previous_post_link(). Эта функцию - обертка для этих функций.

Чтобы сразу вывести результат на экран, используйте the_post_navigation()

Является основой для: the_post_navigation()

Хуков нет.

Возвращает

Строку: HTML код.

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

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

Массив который может содержать следующие параметры:

  • prev_text (строка)
    Текст который будет показан, как анкор ссылки на предыдущую запись.
    По умолчанию: '%title'

  • next_text (строка)
    Текст который будет показан, как анкор ссылки на следующую запись.
    По умолчанию: '%title'

  • screen_reader_text (строка)
    Текст (заголовок) блока навигации для.
    По умолчанию: __( 'Post navigation' )

  • in_same_term (логический)
    true, когда нужно, чтобы ссылка была из текущего элемента указанной в taxonomy таксономии. C версии 4.4.
    По умолчанию: false

  • excluded_terms (строка/массив)
    ID элементов таксономии, который нужно исключить. В виде массива или в строке через запятую. C версии 4.4.
    По умолчанию: ''

  • taxonomy (строка)
    Название таксономии, когда $in_same_term = true. C версии 4.4.
    По умолчанию: 'category'

Примеры

#1 Ссылки навигации между постами

Выведем ссылки на следующий и предыдущий записи (посты) на отдельной странице типа is_single().

<?php
// След./Пред. Пост.
$post_nav = get_the_post_navigation( array(
	'next_text' => '<span class="meta-nav" aria-hidden="true">Далее</span> ' .
		'<span class="screen-reader-text">Следующая запись</span> ' .
		'<span class="post-title">%title</span>',
	'prev_text' => '<span class="meta-nav" aria-hidden="true">Назад</span> ' .
		'<span class="screen-reader-text">Предыдущая запись</span> ' .
		'<span class="post-title">%title</span>',
) );

echo $post_nav;
?>

В результате мы получим такой HTML код:

<nav class="navigation post-navigation" role="navigation">
	<h2 class="screen-reader-text">Навигация по записям</h2>
	<div class="nav-links">
		<div class="nav-previous"><a href="//wptest.ru/post8/" rel="prev"><span class="meta-nav" aria-hidden="true">Назад</span> <span class="screen-reader-text">Предыдущая запись:</span> <span class="post-title">Запись со случайным номером 81717</span></a>
		</div>
		<div class="nav-next"><a href="//wptest.ru/post10/" rel="next"><span class="meta-nav" aria-hidden="true">Далее</span> <span class="screen-reader-text">Следующая запись:</span> <span class="post-title">Привет, мир!</span></a>
		</div>
	</div>
</nav>

Или так это выглядит в дефолной теме twentyfifteen:

prev-next

Код get_the_post_navigation: wp-includes/link-template.php VER 5.0.1

<?php
function get_the_post_navigation( $args = array() ) {
	$args = wp_parse_args( $args, array(
		'prev_text'          => '%title',
		'next_text'          => '%title',
		'in_same_term'       => false,
		'excluded_terms'     => '',
		'taxonomy'           => 'category',
		'screen_reader_text' => __( 'Post navigation' ),
	) );

	$navigation = '';

	$previous = get_previous_post_link(
		'<div class="nav-previous">%link</div>',
		$args['prev_text'],
		$args['in_same_term'],
		$args['excluded_terms'],
		$args['taxonomy']
	);

	$next = get_next_post_link(
		'<div class="nav-next">%link</div>',
		$args['next_text'],
		$args['in_same_term'],
		$args['excluded_terms'],
		$args['taxonomy']
	);

	// Only add markup if there's somewhere to navigate to.
	if ( $previous || $next ) {
		$navigation = _navigation_markup( $previous . $next, 'post-navigation', $args['screen_reader_text'] );
	}

	return $navigation;
}

Cвязанные функции

Из метки: adjacent link (связанные ссылки)

Еще из метки: navigation pagination (навигация пагинация)

Еще из раздела: Навигация

2 коммента
  • @ Станислав

    Подскажите, что добавить в код, чтобы также показывались ссылки на пред. и след. запись, но внутри текущей категории, подкатегории.

    Ответить2.8 года назад #
Здравствуйте, !     Войти . Зарегистрироваться