get_the_post_navigation() WP 4.1.0

Отримує посилання (HTML) на наступний та попередній записи. Використовується на сторінці окремого запису: is_singular() .

Добре підійде для навігації між вкладеннями (прикріпленими картинками).

До версії 4.1. для виведення посилань на попередній і наступний пост, потрібно було використовувати функції previous_post_link() . Ця функція – обгортка для цих функцій.

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

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

Хуків немає.

Повертає

Строку.

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

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

Масив, який може містити наступні параметри:

  • prev_text (рядок)
    Текст який буде показаний як анкор посилання на попередній запис.
    За замовчуванням: %title

  • next_text (рядок)
    Текст який буде показаний як анкор посилання на наступний запис.
    За замовчуванням: %title

  • screen_reader_text (рядок)
    Текст (заголовок) блоку навігації для.
    Типово: __( ‘Post navigation’ )

  • in_same_term (логічний) (WP 4.4)
    true, коли потрібно, щоб посилання було з поточного елемента, зазначеного в taxonomyтаксономії.
    Типово: false

  • excluded_terms (рядок/масив) (WP 4.4)
    ID елементів таксономії, який потрібно виключити. У вигляді масиву або в рядку через кому.
    За замовчуванням: ”

  • taxonomy (рядок) (WP 4.4)
    Назва таксономії, коли $in_same_term= true.
    Типово: ‘category’

  • aria_label (рядок) (WP 5.5)
    Значення атрибуту area-label=""< nav> елемента.
    Типово: __( ‘Posts’ )

  • class (рядок) (WP 5.5)
    Значення атрибуту class=""< nav> елемента.
    За замовчуванням: ‘post-navigation’

Приклади

0

#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="//example.com/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="//example.com/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

0

#2 Додамо title атрибут для посилань

Цей приклад показує, як додати атрибут <a title="" ...>до кожного посилання в блоці. У значенні лежатиме заголовок поста і перед ним буде слово Смотрите:: title="Смотрите: ЗАГОЛОВО_ЗАПИСИ".

add_filter( 'next_post_link', 'add_title_adjacent_post_link', 10, 4);
add_filter( 'previous_post_link', 'add_title_adjacent_post_link', 10, 4);
function add_title_adjacent_post_link( $output, $format, $link, $post ){

	$title = esc_attr( 'Дивіться: '. $post->post_title );

	return str_replace( '<a', "<a title='$title'", $output );
}

Код потрібно додати безпосередньо перед викликом get_the_post_navigation().

список змін

З версії 4.1.0Введено.
З версії 4.4.0Introduced the_same_term , excluded_terms , і taxonomy arguments.
З версії 5.3.0Added aria_label parameter.
З версії 5.5.0Added the class parameter.

Код get_the_post_navigation() WP 6.0.2

function get_the_post_navigation( $args = array() ) {
	// 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(
			'prev_text' => '%title',
			'next_text' => '%title',
			'in_same_term' => false,
			'excluded_terms' => '',
			'taxonomy' => 'category',
			'screen_reader_text' => __( 'Post navigation' ),
			'aria_label' => __( 'Posts' ),
			'class' => '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']
	);

	// Тільки add markup if there's somewhere to navigate to.
	if ($previous ||$next) {
		$navigation = _navigation_markup( $previous . $next, $args['class'], $args['screen_reader_text'], $args['aria_label'] );
	}

	return $navigation;
}

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

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