Функция get_the_posts_navigation()
в WordPress используется для вывода навигации между страницами постов, в том числе для перехода к предыдущему или следующему набору записей. Она особенно полезна на страницах архивов, таких как рубрики, метки и страницы автора.
get_the_posts_navigation( array $args = array() ): string
Параметры
$args
(array) — Опциональный массив аргументов для настройки навигации.prev_text
(string) — Текст ссылки на предыдущие записи. По умолчанию:'Older posts'
.next_text
(string) — Текст ссылки на следующие записи. По умолчанию:'Newer posts'
.screen_reader_text
(string) — Текст для считывателей экрана. По умолчанию:'Posts navigation'
.aria_label
(string) — ARIA-метка для элемента навигации. По умолчанию:'Posts'
.class
(string) — CSS-класс для элемента навигации. По умолчанию:'posts-navigation'
.
Возвращаемое значение
Функция возвращает строку, содержащую HTML-разметку с ссылками на предыдущий и следующий набор записей.
Пример 1: Простая навигация между постами
Для отображения стандартной навигации между постами без изменения текста ссылок, можно использовать следующий код:
if ( have_posts() ) {
// Ваш цикл вывода постов
while ( have_posts() ) {
the_post();
// Вывод поста
}
// Отображение навигации
echo get_the_posts_navigation();
}
Этот код создаст стандартные ссылки «Older posts» и «Newer posts» для навигации по страницам архива.
Пример 2: Изменение текста ссылок навигации
Если вы хотите изменить текст ссылок на предыдущие и следующие посты, можно передать свои значения в параметре $args
:
$args = array(
'prev_text' => __( 'Предыдущие записи', 'textdomain' ),
'next_text' => __( 'Следующие записи', 'textdomain' ),
);
echo get_the_posts_navigation( $args );
Этот код выведет навигационные ссылки с кастомными текстами: «Предыдущие записи» и «Следующие записи».
Пример 3: Добавление ARIA метки и пользовательского CSS-класса
Чтобы сделать навигацию более доступной для считывателей экрана и добавить кастомный класс для стилизации, можно использовать параметры aria_label
и class
:
$args = array(
'prev_text' => __( 'Назад', 'textdomain' ),
'next_text' => __( 'Вперёд', 'textdomain' ),
'screen_reader_text' => __( 'Навигация по постам', 'textdomain' ),
'aria_label' => __( 'Навигация по архивам', 'textdomain' ),
'class' => 'custom-navigation-class',
);
echo get_the_posts_navigation( $args );
Этот пример создаст HTML-разметку с пользовательским классом custom-navigation-class
, текстом для считывателей экрана и ARIA меткой «Навигация по архивам».
Пример 4: Проверка наличия предыдущих и следующих постов
Если нужно условно выводить навигацию только в том случае, если существует следующий или предыдущий набор постов, можно использовать функции get_previous_posts_link()
и get_next_posts_link()
:
if ( get_previous_posts_link() || get_next_posts_link() ) {
echo get_the_posts_navigation( array(
'prev_text' => __( '← Назад', 'textdomain' ),
'next_text' => __( 'Вперёд →', 'textdomain' ),
) );
}
Этот код сначала проверяет наличие ссылок на предыдущие и следующие посты, и только если они есть, выводит навигацию.
Пример 5: Кастомизация навигации на архивной странице меток
На странице архива меток вы можете кастомизировать навигацию следующим образом:
if ( is_tag() ) {
$args = array(
'prev_text' => __( 'Смотреть старые посты по этой метке', 'textdomain' ),
'next_text' => __( 'Новые посты по этой метке', 'textdomain' ),
);
echo get_the_posts_navigation( $args );
}
Этот код будет отображать кастомные тексты ссылок для архивной страницы меток, изменяя их на более специфичные.
Пример 6: Пример HTML-кода навигации
Функция get_the_posts_navigation()
вернёт HTML-код, который может выглядеть так:
<nav class="navigation posts-navigation" role="navigation" aria-label="Posts">
<h2 class="screen-reader-text">Навигация по записям</h2>
<div class="nav-links">
<div class="nav-previous">
<a href="http://example.com/page/3/">← Назад</a>
</div>
<div class="nav-next">
<a href="http://example.com/page/1/">Вперёд →</a>
</div>
</div>
</nav>
Этот HTML код включает ссылки на предыдущие и следующие страницы постов, с настройкой ARIA-меток и текста для считывателей экрана.
Заключение
Функция get_the_posts_navigation()
является удобным инструментом для вывода навигации на страницах архива в WordPress. С её помощью вы можете легко кастомизировать текст ссылок, стилизовать навигацию и улучшить доступность сайта.