next_post_link()
Выводит ссылку на следующий по дате пост из указанной таксономии (по умолчанию category).
Используется на страницах типа is_single().
Работает с global $post.
Не путайте очень похожую по названию функцию next_posts_link(), которая выводит ссылку на страницу со списком следующих постов, а не на ссылку на отдельный следующий пост.
Заметка для параметра $in_same_cat. Если запись находится в нескольких категориях одновременно, то подбор записей будет из всех этих рубрик. Например, может получиться, что текущая запись находится в рубриках 1 2 3, а следующая в 4 5. Таким образом при переходе по таким ссылкам, не получится смотреть записи из одной рубрики и пользователя будет кидать из одной рубрики в другую.
Используйте previous_post_link(), чтобы вывести ссылку на предыдущий пост.
Хуков нет.
Возвращает
null
.
Использование
<?php next_post_link( $format, $link, $in_same_cat, $excluded_terms, $taxonomy ); ?>
- $format(строка)
- Формат ссылки. Контролирует что будет до и после ссылки. Тег
%link
в строке будет заменен на ссылку. Например,'Перейти к %link'
, выведетПерейти к Название статьи
. Также в строке можно использовать параметр%date
, тогда в текст ссылки будет добавлена еще и дата публикации поста.
По умолчанию: '%link »' - $link(строка)
- Текст ссылки (Анкор). Тег
%title
будет заменен заголовком статьи.
По умолчанию: '%title' - $in_same_cat(логический)
- Если установить этот параметр в
true
или1
, то будет выводиться ссылка на следующую статью из той же категории что и текущая.
По умолчанию: false - $excluded_terms (строка)
ID категории посты из которых не нужно учитывать при подборе следующего поста. Можно указать несколько категорий. Указывать можно:
- в массиве -
'1,5,15'
- через запятую -
array(1,5,15)
- через слово
and
-'1 and 5 and 15'
Если указан следующий параметр $taxonomy, то тут нужно указывать соответствующие термины термины.
Параметр не работает для постоянных страниц (page) и типов записей у которых нет таксономий.
По умолчанию: ''
- в массиве -
- $taxonomy(строка)
- Название таксономии ссылка на запись из которой будет получаться.
По умолчанию: 'category'
Примеры
#1 Следующая ссылка
Выведем следующую по дате публикации ссылку и выделим её жирным (HTML тегом strong):
<?php next_post_link('<strong>%link</strong>'); ?>
Вернет: <a rel="next" href="/post_name">Заголовок поста</a>
#2 Из текущей категории
Выведем ссылку на следующую статью из текущей категории с текстом - "Следующая статья из категории" вместо заголовка статьи:
<?php next_post_link('%link', 'Следующая статья из категории', true); ?>
#3 Исключим категорию
Выведем ссылку на следующую по дате публикации статью, но не из категории 13 (статьи из категории 13 не будут учитываться):
<?php next_post_link('%link', '%title', false, '13'); ?>
#4 Таксономия
Ссылка на следующую запись из текущего термина указанной таксономии. Нужная нам таксономия называется battle_cat:
next_post_link( '%link', '< %title', true, '', 'battle_cat' );
#5 Зацикленный вывод
Если нужно зациклить вывод, т.е. если нет следующей записи, то вывести первую и наоборот, используйте такой код:
/** * Зацикленный вывод предыдущего и следующего поста в WordPress */ if( get_adjacent_post(false, '', true) ) { previous_post_link('%link', '← Previous Post'); } else { $first = new WP_Query('posts_per_page=1&order=DESC'); $first->the_post(); echo '<a href="' . get_permalink() . '">← Предыдущий пост</a>'; wp_reset_postdata(); }; if( get_adjacent_post(false, '', false) ) { next_post_link('%link', 'Next Post →'); } else { $last = new WP_Query('posts_per_page=1&order=ASC'); $last->the_post(); echo '<a href="' . get_permalink() . '">Следующий пост →</a>'; wp_reset_postdata(); }
Заметки
- Смотрите: get_next_post_link()
Список изменений
С версии 1.5.0 | Введена. |
Код next_post_link() next post link WP 6.7.1
function next_post_link( $format = '%link »', $link = '%title', $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' ) { echo get_next_post_link( $format, $link, $in_same_term, $excluded_terms, $taxonomy ); }