Описание pre_get_terms
— Filter
Хук pre_get_terms позволяет изменять параметры запроса терминов (категорий, меток и т.д.) перед его выполнением. Он срабатывает перед выполнением WP_Term_Query, что позволяет изменять выборку терминов, например, по какому-либо критерию или добавлять дополнительные условия
Примеры использования
Пример изменения порядка терминов по имени:
add_filter('pre_get_terms', function($query, $taxonomies) {
if (in_array('category', $taxonomies)) {
$query->orderby = 'name';
$query->order = 'ASC';
}
return $query;
}, 10, 2);
В этом примере мы изменяем порядок терминов категории, сортируя их по имени в алфавитном порядке.
Пример фильтрации терминов по метке:
add_filter('pre_get_terms', function($query, $taxonomies) {
if (in_array('post_tag', $taxonomies)) {
$query->meta_query = array(array('key' => 'featured', 'value' => '1'));
}
return $query;
}, 10, 2);
Здесь мы добавляем мета-запрос для фильтрации тегов, чтобы получить только те, которые имеют мета-ключ ‘featured’ со значением ‘1’.
Пример ограничения количества терминов в запросе:
add_filter('pre_get_terms', function($query, $taxonomies) {
if (in_array('category', $taxonomies)) {
$query->number = 10; // Ограничиваем до 10 терминов
}
return $query;
}, 10, 2);
В этом примере мы ограничиваем количество возвращаемых терминов категории до 10.
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо изменить параметры запроса терминов перед его выполнением
– Производительность
Изменения, внесенные с помощью этого хуки, могут повлиять на производительность, если запросы становятся слишком сложными
– Предупреждения
Убедитесь, что изменения не конфликтуют с другими запросами или плагинами, изменяющими запросы терминов
Альтернативы
Тип: function
Эта функция позволяет получить термины, но уже после выполнения запроса
Используйте ее, если вам нужно работать с уже загруженными терминами, а не изменять их запрос