Описание get_{$adjacent}_post_excluded_terms
— Filter
Хук get_{$adjacent}_post_excluded_terms позволяет изменить массив терминов, которые исключаются из запроса при получении соседних постов (предыдущего или следующего). Он срабатывает во время выполнения запросов для получения соседних постов и позволяет управлять категориями или тегами, которые не будут учитываться при выборке.
Примеры использования
Пример исключения определенных категорий из запросов соседних постов:
add_filter('get_previous_post_excluded_terms', function($excluded_terms, $post_id) {
$excluded_terms[] = 5; // Исключаем категорию с ID 5
return $excluded_terms;
}, 10, 2);
В этом примере мы исключаем категорию с идентификатором 5 из запроса предыдущего поста.
Пример исключения тегов из запросов соседних постов:
add_filter('get_next_post_excluded_terms', function($excluded_terms, $post_id) {
$excluded_terms[] = 10; // Исключаем тег с ID 10
return $excluded_terms;
}, 10, 2);
Здесь мы исключаем тег с идентификатором 10 из запроса следующего поста.
Пример динамического исключения терминов в зависимости от типа поста:
add_filter('get_previous_post_excluded_terms', function($excluded_terms, $post_id) {
$post = get_post($post_id);
if ($post->post_type === 'product') {
$excluded_terms[] = 3; // Исключаем категорию с ID 3 для товаров
}
return $excluded_terms;
}, 10, 2);
Мы исключаем категорию с ID 3 только для постов типа ‘product’.
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо изменить список терминов, исключаемых из запросов соседних постов.
– Производительность
Хук не должен существенно влиять на производительность, так как изменения касаются только выборки постов.
– Предупреждения
Убедитесь, что исключенные термины действительно имеют отношение к типу поста, чтобы избежать ошибок в логике отображения.
Альтернативы
Тип: function
Функция, которая получает соседний пост и может принимать параметры для исключения терминов.
Используйте эту функцию, если нужно получить соседний пост с дополнительной логикой исключения.