next_post_link()
Виводить посилання на наступний за датою пост із зазначеної таксономії (за умовчанням category).
Використовується на сторінках типу is_single() .
Працює з global $post .
Не плутайте дуже схожу за назвою функцію next_posts_link() , яка виводить посилання на сторінку зі списком наступних постів, а не посилання на окремий наступний пост.
Нотатка для параметра $in_same_cat . Якщо запис перебуває у кількох категоріях одночасно, то підбір записів буде з усіх цих рубрик. Наприклад, може вийти, що поточний запис знаходиться в рубриках 1 2 3, а наступний в 4 5. Таким чином, при переході за такими посиланнями, не вийде дивитися записи з однієї рубрики і користувача буде кидати з однієї рубрики в іншу.
Використовуйте previous_post_link() , щоб вивести посилання на попередній пост.
get_next_post_link()
(дуже повільно) | 50000 разів – 16.31 сек
(повільно) |
PHP 7.1.5, WP 4.8.1
Хуків немає.
Повертає
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.0.2
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 ); }