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

Функция NEXT_POST_LINK() в WordPress

Функция next_post_link() помогает создать ссылку на следующий пост, который появился позже текущего, основываясь на дате публикации. Эта функция может работать с разными таксономиями, но по умолчанию использует категорию.

Использование функции

Эту функцию нужно применять внутри цикла WordPress, известного как Loop.

Важно: Не путайте эту функцию с next_posts_link(), которая выводит ссылку на список следующих постов, а не на отдельный пост.

Для вывода ссылки на предыдущий пост используйте функцию previous_post_link().

Параметры функции

next_post_link( $format, $link, $in_same_term, $excluded_terms, $taxonomy );
  • $format (string) - Формат ссылки. %link будет заменён на HTML-тег <a>. Пример: '%link →' выведет <a ...> →.

    • По умолчанию: '%link'
  • $link (string) - Формат текста ссылки. %title будет заменён на заголовок поста.

    • По умолчанию: '%title'
  • $in_same_term (true/false) - Определяет, должна ли ссылка быть в той же таксономии. true - получить следующий пост из текущей категории. Если пост в пользовательской таксономии, укажите параметр $taxonomy.

    • По умолчанию: false
  • $excluded_terms (array/string) - Массив или строка, разделённая запятыми, с ID исключённых терминов. Можно указать строку или массив: '1,5,15' или array(1,5,15).

    • По умолчанию: ''
  • $taxonomy (string) - Название таксономии для параметра $in_same_term.

    • По умолчанию: 'category'

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

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

Вывести ссылку на следующий пост в жирном формате:

%link'); ?>

Вывод:

2. Следующий пост из текущей категории

Вывести ссылку на следующий пост из текущей категории с текстом "Следующий из текущей категории":

3. Исключение категории

Вывести ссылку на следующий пост, игнорируя посты из категории 13:

4. Использование таксономий

Вывести ссылку на следующий пост в заданной таксономии, например battle_cat:

5. Циклический вывод

Если никакого следующего поста нет, вместо него вывести первый пост:

/**
 * Циклический вывод предыдущего и следующего поста в WordPress
 */
if( get_adjacent_post(false, '', true) ) { 
    previous_post_link('%link', '← Предыдущий пост');
} else { 
    $first = new WP_Query('posts_per_page=1&order=DESC');
    $first->the_post();

    echo '← Предыдущий пост';

    wp_reset_postdata();
}; 

if( get_adjacent_post(false, '', false) ) { 
    next_post_link('%link', 'Следующий пост →');
} else { 
    $last = new WP_Query('posts_per_page=1&order=ASC');
    $last->the_post();

    echo 'Следующий пост →';

    wp_reset_postdata();
}; 

Замечания

  • Функция next_post_link() является обёрткой для get_next_post_link(), которая фактически и генерирует HTML-код ссылки на следующий пост.

Изменения

  • Функция next_post_link() была введена в версии WordPress 1.5.0.

Теперь вы знаете, как использовать функцию next_post_link() в WordPress! Если у вас есть вопросы или примеры, не стесняйтесь делиться ими.

Leave a Reply

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