get_the_post_navigation()
Получает ссылки (HTML) на следующую и предыдущую записи. Используется на странице отдельной записи: is_singular().
Хорошо подойдет для навигации между вложениями (прикрепленными картинками).
До версии 4.1. для вывода ссылок на предыдущий и следующий поста, нужно было использовать функции next_post_link() и previous_post_link(). Эта функцию - обертка для этих функций.
Чтобы сразу вывести результат на экран, используйте 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'
-
Примеры
#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:
#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.0 | Introduced the in_same_term, excluded_terms, and taxonomy arguments. |
С версии 5.3.0 | Added the aria_label parameter. |
С версии 5.5.0 | Added the class parameter. |