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

the_post_navigation() WP 4.1.0

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

Эта функция объединяет в одну отдельные функции: next_post_link() и previous_post_link(). Функция создана для удобства, с ней вставлять блок навигации между соседними статьями (записями) можно одной строкой.

Чтобы получить HTML код для обработки, используйте get_the_post_navigation()

Не путайте с функцией the_posts_navigation(), которая выводит ссылки на следующую/предыдущую страницу с записями.

Работает на основе: get_the_post_navigation()

Хуков нет.

Возвращает

Ничего (null). Выводит на экран HTML код.

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

the_post_navigation( $args );

Параметры $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().

// След./Пред. Пост.
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>',
) );

В результате мы получим такой 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

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

<?php
function the_post_navigation( $args = array() ) {
	echo get_the_post_navigation( $args );
}

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

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

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

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

Еще из тегов шаблона: Записи: посты, страницы, ...

5 комментов
  • Игорь

    А теперь тут нет возможности ограничить навигацию рубрикой, как в previous_post_link() и next_post_link ?

    1
    Ответить3.7 года назад #
  • Bogdan

    Привет,
    У меня токой код

                global $post;
    			$terms = get_the_terms($post->id, 'castcategory');
    			$termslug = $terms[0]->slug;
    			// Previous/next post navigation.
    			the_post_navigation( array(
    				'next_text' => 
    					'<span class="meta-nav" aria-hidden="true">' . __( 'Next', 'casting' ) . '</span> ',
    				'prev_text' => 
    					'<span class="meta-nav" aria-hidden="true">' . __( 'Previous', 'casting' ) . '</span> ', 
    				'in_same_term' => true, 
    				'taxonomy' => $termslug
    			) );

    Я хочу что бьй в single.php навигация бъйла только в текущей категору но что то не получается. Когда in_same_term = true вобше нет навигации.

    Помогите пожалуйста

    Ответить2.9 года назад #
  • Алексей

    Доброго времени!
    Подскажите пожалуйста, как влиять на сортировку выбранных постов данной функции?
    То есть у меня посты отсортированы не по дате, а по алфавиту. Заранее спасибо

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