# get_adjacent_post_link() │ WP 3.7.0
Функция get_adjacent_post_link() позволяет получить ссылку на предыдущую или следующую запись (пост) на вашем сайте WordPress. ��то удобно, если вы хотите предоставить пользователям возможность легко перемещаться между записями на основе определенной таксономии (по умолчанию это категории).
## Использование
Эта функция применяется на страницах с типом is_single(), что означает, что она используется на страницах самих записей (постов).
### Варианты использования
Для работы с этой функцией имеются обертки:
- previous_post_link()
- next_post_link()
### Возвращаемое значение
Функция возвращает строку — HTML-ссылку на предыдущую или следующую запись относительно текущей записи.
Пример возвращаемого значения:
```html
Название поста
Синтаксис
Вот как выглядит функция:
get_adjacent_post_link( $format, $link, $in_same_term, $excluded_terms, $previous, $taxonomy );
Параметры
-
$format(строка) — обязательный. Формат ссылки.%linkбудет заменён на HTML-код ссылки<a>. Например,'%link →'выведет<a ...> →. -
$link(строка) — обязательный. Формат ссылки.%titleбудет заменён на название поста. -
$in_same_term(булево) — по умолчаниюfalse. Еслиtrue, будет искаться связь с записями в той же категории, что и текущая запись. -
$excluded_terms(массив/строка) — список ID терминов (категорий), которые нужно исключить. Например,'1,5,15'илиarray(1,5,15). -
$previous(булево) — по умолчаниюtrue. Указывает, нужно ли показывать ссылку на предыдущую (true) или следующую (false) запись. -
$taxonomy(строка) — название таксономии, если$in_same_termравноtrue. По умолчанию'category'.
Примеры использования
Вот несколько примеров вызова функции и возможные результаты:
-
Ссылка на предыдущий пост:
echo get_adjacent_post_link( '← %link', '%title' );Это выведет:
← <a href="http://test.ru/markup" rel="prev">Маркировка</a> -
Ссылка на следующий пост:
echo get_adjacent_post_link( '%link →', '%title', false);Это выведет:
<a href="http://example.com/some" rel="next">Некоторый контент</a> → -
Ссылка на предыдущий пост из текущей категории:
echo get_adjacent_post_link( '%link', '← %title', true);Это выведет:
<a href="http://test.ru/markup" rel="prev">← Маркировка</a> -
Ссылка на следующий пост из текущей категории:
echo get_adjacent_post_link( '%link', '%title →', true, '', false);Это выведет:
<a href="http://example.com/some" rel="next">Некоторый контент →</a> -
Ссылка на предыдущий пост, исключая категории 5 и 10:
echo get_adjacent_post_link( '%link', '%title →', false, '5,10');
Замечания
Важно помнить, что функция get_adjacent_post_link() будет показывать ссылку на первую или последнюю запись, если сведений о следующем или предыдущем посте нет.
Пример функции для получения соседних записей
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( '%s', get_the_permalink($article->ID), $class, $article->post_title );
}
echo $link;
}
Эта функция использует get_adjacent_post_link() для отображения ссылки, а если соседние записи отсутствуют, то выбирает первую или последнюю запись в той же категории.
Изменения
Функция была введена в версии 3.7.0 WordPress.
Связанные функции
get_next_post_link()get_previous_post_link()get_the_post_navigation()next_post_link()previous_post_link()the_post_navigation()
Эти функции позволяют управлять навигацией между записями и улучшить пользовательский опыт на вашем сайте.