Функция get_adjacent_post_link() в WordPress: использование и примеры

# 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'.

Примеры использования

Вот несколько примеров вызова функции и возможные результаты:

  1. Ссылка на предыдущий пост:

    echo get_adjacent_post_link( '← %link', '%title' );

    Это выведет:
    ← <a href="http://test.ru/markup" rel="prev">Маркировка</a>

  2. Ссылка на следующий пост:

    echo get_adjacent_post_link( '%link →', '%title', false);

    Это выведет:
    <a href="http://example.com/some" rel="next">Некоторый контент</a> →

  3. Ссылка на предыдущий пост из текущей категории:

    echo get_adjacent_post_link( '%link', '← %title', true);

    Это выведет:
    <a href="http://test.ru/markup" rel="prev">← Маркировка</a>

  4. Ссылка на следующий пост из текущей категории:

    echo get_adjacent_post_link( '%link', '%title →', true, '', false);

    Это выведет:
    <a href="http://example.com/some" rel="next">Некоторый контент →</a>

  5. Ссылка на предыдущий пост, исключая категории 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()

Эти функции позволяют управлять навигацией между записями и улучшить пользовательский опыт на вашем сайте.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *