Функция get_the_post_navigation()
в WordPress позволяет выводить навигацию между записями, показывая ссылки на предыдущий и следующий пост. Это особенно полезно для улучшения пользовательского опыта на страницах отдельных записей.
get_the_post_navigation( array $args = array() ): string
Параметры
- $args (array, необязательный): Массив аргументов для настройки навигации. По умолчанию — пустой массив.
Параметры $args
:
- prev_text (string): Текст, который будет показан в ссылке на предыдущий пост. По умолчанию —
%title
. - next_text (string): Текст, который будет показан в ссылке на следующий пост. По умолчанию —
%title
. - in_same_term (bool): Указывает, должна ли ссылка находиться в том же элементе указанной таксономии. По умолчанию —
false
. - excluded_terms (int[]|string): Массив или строка с ID терминов, которые следует исключить из выборки. По умолчанию — пустая строка.
- taxonomy (string): Название таксономии, если установлен параметр
$in_same_term
. По умолчанию —'category'
. - screen_reader_text (string): Текст (заголовок) блока навигации для экранных читалок. По умолчанию —
__('Post navigation')
. - aria_label (string): Значение атрибута
aria-label
для элемента<nav>
. По умолчанию —__('Posts')
. - class (string): Значение атрибута
class
для элемента<nav>
. По умолчанию —'post-navigation'
.
Возвращаемое значение
Функция возвращает строку с HTML-кодом навигации между записями. Если навигация не требуется, функция может вернуть пустую строку.
Пример 1: Навигация между записями
В этом примере мы выведем ссылки на следующий и предыдущий пост на странице отдельной записи:
// Создаем навигацию между записями
$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="http://example.com/previous-post/" rel="prev">
<span class="meta-nav" aria-hidden="true">Назад</span>
<span class="screen-reader-text">Предыдущая запись:</span>
<span class="post-title">Запись 123</span>
</a>
</div>
<div class="nav-next">
<a href="http://example.com/next-post/" rel="next">
<span class="meta-nav" aria-hidden="true">Далее</span>
<span class="screen-reader-text">Следующая запись:</span>
<span class="post-title">Запись 456</span>
</a>
</div>
</div>
</nav>
Пример 2: Добавление атрибута 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 );
}
// Выводим навигацию между записями
$post_nav = get_the_post_navigation();
echo $post_nav;
Теперь каждая ссылка будет содержать атрибут title
, который даст пользователям дополнительную информацию о посте.
Заключение
Функция get_the_post_navigation()
является удобным инструментом для создания навигации между записями в WordPress. Она упрощает задачу создания ссылок на предыдущий и следующий пост, а также позволяет настраивать отображение и поведение этих ссылок с помощью различных параметров. С помощью этой функции можно значительно улучшить навигацию на сайте, что сделает его более удобным для пользователей.