Функция 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. Она упрощает задачу создания ссылок на предыдущий и следующий пост, а также позволяет настраивать отображение и поведение этих ссылок с помощью различных параметров. С помощью этой функции можно значительно улучшить навигацию на сайте, что сделает его более удобным для пользователей.
