Функция the_post_navigation()
используется для вывода навигационных ссылок между соседними записями — предыдущей и следующей. Она упрощает работу с навигацией, объединяя функциональность previous_post_link()
и next_post_link()
в одну удобную функцию. Это полезно при создании страниц с одиночными записями (например, страницы постов).
the_post_navigation( array $args = array() );
Аргументы:
$args
(массив, необязательный): массив параметров для настройки навигации. Параметры передаются через функциюget_the_post_navigation()
, которая возвращает HTML-код для навигации. Основные параметры включают:prev_text
(строка): текст ссылки на предыдущую запись. Можно использовать тег%title
, который заменяется на заголовок предыдущей записи.next_text
(строка): текст ссылки на следующую запись. Аналогично,%title
заменяется заголовком следующей записи.screen_reader_text
(строка): текст, предназначенный для улучшения доступности (используется для сканирующих устройств). Обычно это название секции навигации.in_same_term
(логическое значение): еслиtrue
, ссылка будет вести только на посты из той же таксономии (например, рубрики).taxonomy
(строка): имя таксономии, которая используется для фильтрации (например, ‘category’, ‘post_tag’).excluded_terms
(строка или массив): ID таксономий, которые должны быть исключены из выборки.
Пример 1: Простая навигация между постами
Этот пример выводит стандартные ссылки на предыдущую и следующую запись. Заголовки записей заменяются на %title
, а экранный текст — на «Post navigation».
<?php
the_post_navigation( array(
'prev_text' => __( 'Previous Post: %title' ),
'next_text' => __( 'Next Post: %title' ),
) );
?>
Пример 2: Навигация с настройкой текста и HTML
Здесь мы добавляем HTML-разметку и изменяем текст кнопок навигации. Используются теги <span>
для стилизации навигации, а также текст для экранных читалок (screen readers).
<?php
the_post_navigation( array(
'next_text' => '<span class="meta-nav">Следующая:</span> ' .
'<span class="screen-reader-text">Next post:</span> ' .
'<span class="post-title">%title</span>',
'prev_text' => '<span class="meta-nav">Предыдущая:</span> ' .
'<span class="screen-reader-text">Previous post:</span> ' .
'<span class="post-title">%title</span>',
) );
?>
Вывод:
<nav class="navigation post-navigation">
<h2 class="screen-reader-text">Post navigation</h2>
<div class="nav-links">
<div class="nav-previous">
<a href="previous-post-url">
<span class="meta-nav">Предыдущая:</span>
<span class="screen-reader-text">Previous post:</span>
<span class="post-title">Название предыдущего поста</span>
</a>
</div>
<div class="nav-next">
<a href="next-post-url">
<span class="meta-nav">Следующая:</span>
<span class="screen-reader-text">Next post:</span>
<span class="post-title">Название следующего поста</span>
</a>
</div>
</div>
</nav>
Пример 3: Навигация в рамках одной рубрики
Иногда требуется выводить ссылки только на записи из той же категории или рубрики, что и текущая запись. Для этого можно использовать аргумент $in_same_term
.
<?php
the_post_navigation( array(
'prev_text' => __( 'Предыдущая глава: %title' ),
'next_text' => __( 'Следующая глава: %title' ),
'in_same_term' => true,
'taxonomy' => 'category', // Фильтрация по категории
) );
?>
Пример 4: Исключение определенных категорий
Этот пример демонстрирует, как исключить определенные категории (например, с ID 5 и 8) при навигации между постами.
<?php
the_post_navigation( array(
'prev_text' => __( 'Назад: %title' ),
'next_text' => __( 'Вперед: %title' ),
'excluded_terms' => '5,8', // Исключаем категории 5 и 8
) );
?>
Пример 5: Навигация с кастомной таксономией
Если у вас есть пользовательская таксономия, например «genre», можно использовать её для фильтрации записей в навигации.
<?php
the_post_navigation( array(
'prev_text' => __( 'Предыдущий в жанре: %title' ),
'next_text' => __( 'Следующий в жанре: %title' ),
'in_same_term' => true,
'taxonomy' => 'genre', // Используем кастомную таксономию
) );
?>
Заключение
Функция the_post_navigation()
позволяет легко настроить навигацию между постами в WordPress, предоставляя множество параметров для фильтрации по таксономиям, настройке текста ссылок и управлению доступностью.