Функция get_previous_post()
в WordPress позволяет получить предыдущий пост, который идет перед текущим постом в указанной таксономии. Эта функция полезна для навигации по контенту сайта и улучшения пользовательского опыта.
get_previous_post( bool $in_same_term = false, int[]|string $excluded_terms = '', string $taxonomy = 'category' ): WP_Post|null|string
Параметры
- $in_same_term (bool, необязательный): Определяет, должен ли предыдущий пост находиться в том же таксономическом термине, что и текущий пост. По умолчанию —
false
. - $excluded_terms (int[]|string, необязательный): Массив или строка с ID терминов, которые следует исключить из выборки. По умолчанию — пустая строка.
- $taxonomy (string, необязательный): Название таксономии, если установлен параметр
$in_same_term
. По умолчанию —'category'
.
Возвращаемое значение
Функция возвращает объект WP_Post
, если предыдущий пост успешно найден, null
, если глобальная переменная $post
не установлена, и пустую строку, если предыдущего поста не существует.
Пример 1: Получение предыдущего поста
В этом примере мы получаем предыдущий пост относительно текущего и выводим ссылку на него.
// Получаем предыдущий пост
$prev_post = get_previous_post();
if ( ! empty( $prev_post ) ) {
echo '<a href="' . get_permalink( $prev_post->ID ) . '">'. esc_html( $prev_post->post_title ) .'</a>';
}
// Выводит: <a href="http://example.com/previous-post" rel="prev">Предыдущий пост</a>
Пример 2: Получение предыдущего поста из текущей категории
Если вы хотите получить предыдущий пост из той же категории, что и текущий пост, используйте следующий код.
// Получаем предыдущий пост из текущей категории
$prev_post = get_previous_post(true);
if ( ! empty( $prev_post ) ) {
echo '<a href="' . get_permalink( $prev_post->ID ) . '">'. esc_html( $prev_post->post_title ) .'</a>';
}
// Выводит: <a href="http://example.com/previous-post" rel="prev">Предыдущий пост в категории</a>
Пример 3: Получение предыдущего поста из пользовательской таксономии
Если вам нужно получить предыдущий пост из пользовательской таксономии, например, my_custom_tax
, вы можете сделать это следующим образом:
// Получаем предыдущий пост из пользовательской таксономии
$prev_post = get_previous_post(true, '', 'my_custom_tax');
if ( ! empty( $prev_post ) ) {
echo '<a href="' . get_permalink( $prev_post->ID ) . '">'. esc_html( $prev_post->post_title ) .'</a>';
}
// Выводит: <a href="http://example.com/previous-post" rel="prev">Предыдущий пост из my_custom_tax</a>
Пример 4: Использование с исключением определенных терминов
Если вы хотите исключить определенные категории из выборки, это можно сделать следующим образом:
// Получаем предыдущий пост, исключая некоторые категории
$excluded_terms = '3,5'; // Идентификаторы терминов для исключения
$prev_post = get_previous_post(false, $excluded_terms);
if ( ! empty( $prev_post ) ) {
echo '<a href="' . get_permalink( $prev_post->ID ) . '">'. esc_html( $prev_post->post_title ) .'</a>';
}
// Выводит: <a href="http://example.com/previous-post" rel="prev">Предыдущий пост без исключенных категорий</a>
Заключение
Функция get_previous_post()
является мощным инструментом для навигации по записям в WordPress. Она позволяет легко получать ссылки на предыдущие посты, а также настраивать выборку по категориям или пользовательским таксономиям. Это делает её идеальным решением для улучшения пользовательского опыта на вашем сайте.