get_adjacent_post_link()
Отримує посилання (HTML тег A) наступний/попередній пост із зазначеної таксономії (за замовчуванням).
Працює з усіма типами записів (з типом запису поточного поста – Global $post ).
Використовується на сторінках типу is_single() .
Для цієї функції існують обгортки, для зручного використання:
Працює на основі:
get_adjacent_post()
get_adjacent_post()
Хуки з функції
Повертає
Строку. HTML код посилання:
<a rel="nofollow" href="/post_name">Заголовок поста</a>
Використання
get_adjacent_post_link( $format, $link, $in_same_term, $excluded_terms, $previous, $taxonomy );
- $format
(рядок) (обов’язковий) - Формат посилання.
%linkбуде замінено на HTML код посилання
<a> . Наприклад, ‘
%link →‘ виведе
<a ...> →. - $link
(рядок) (обов’язковий) - Анкор посилання.
'%title'буде замінено на заголовок запису. - $in_same_term
(логічний) - true – шукатиме суміжні записи у тому елементі таксономії (рубриці) як і поточна стаття, звідки викликається функція. false – шукатиме посилання з усіх елементів таксономії.
Типово: false - $excluded_terms
(масив/рядок) - ID елементів таксономії, статті у яких потрібно враховувати. Вказується в масиві або рядку через кому, наприклад:
'1,5,15'або
array(1,5,15).
За замовчуванням: ” - $previous
(логічний/рядок) - Який запис шукати: наступний за поточною статтею (false) або до поточної статті (true).
Типово: true - $taxonomy
(рядок) - Назва таксономії, з якою працювати, якщо є параметр $in_same_term.
Типово: ‘category’
Приклади
#1 Демонстрація
Нижче варіанти виклику функції і те, що в результаті виводиться:
# Посилання на попередній запис echo get_adjacent_post_link( '← %link', '%title' ); # виведе: ← <a href="http://test.ru/markup" rel="prev">Маркування</a> # Посилання на наступний запис echo get_adjacent_post_link( '%link →', '%title', 0, '', false ); # виведе: <a href="http://example.com/some" rel="next">Щось</a> → # Посилання на попередній запис з поточної рубрики echo get_adjacent_post_link( '%link', '← %title', 1 ); # виведе: <a href="http://test.ru/markup" rel="prev">← Маркування</a> # Посилання на наступний запис з поточної рубрики echo get_adjacent_post_link( '%link', '%title →', 1, '', false ); # виведе: <a href="http://example.com/some" rel="next">Щось →</a> # Посилання на попередній запис з поточного елементу таксономії (my_tax), для довільних таксономій echo get_adjacent_post_link( '%link', '%title →', 1, '', 1, 'my_tax' ); # Посилання на наступний запис з поточного елементу таксономії (my_tax) echo get_adjacent_post_link( '%link', '%title →', 1, '', 0, 'my_tax' ); # Посилання на попередній запис не враховуючи записи з рубрик 5 та 10 echo get_adjacent_post_link( '%link', '%title →', 0, '5,10');
#2 Функція кільцевої перелінковки
Функція з коментарів від Campusboy , яка може стати в нагоді.
Особливість функції в тому, якщо слід. або перед. запису немає, то буде виведено посилання на перший або останній запис відповідно.
/**
* Виводить посилання (HTML тег A) на суміжні записи (наступна/попередня).
*
* За відсутності суміжного запису виводить запис із протилежного кінця рубрики. Працює в межах тієї рубрики, де знаходиться запис.
*
* @param string $course набуває значення next/prev.
*/
function da_the_adjacent_post_link( $course = '' ){
global $post;
$course = ($course == 'prev')? true: false;
$order = ($course)? 'DESC' : 'ASC';
$class = ($course)? 'prev': 'next';
$link = get_adjacent_post_link( '%link', '%title', true, '', $course );
if (! $link) {
$term = get_the_terms( $post->ID, 'category' );
$ term = $ term [0];
$article = get_posts([
'numberposts' => 1,
'exclude' => $post->ID,
'category' => $term->term_id,
'order' => $order
]);
if ( empty($article) )
return false;
else
$article = $article[0];
$link = sprintf( '<a href="%s" rel="%s">%s</a>', get_the_permalink($article->ID), $class, $article->post_title );
}
echo $link;
}
список змін
| З версії 3.7.0 | Введено. |