Описание query
— Filter
Хук query позволяет изменять параметры WP_Query перед выполнением запроса к базе данных. Он срабатывает перед выполнением основной выборки постов и позволяет модифицировать запрос, чтобы адаптировать его под конкретные нужды
Примеры использования
Пример изменения количества постов на главной странице:
add_filter('query', function($query) {
if (is_home()) {
$query->set('posts_per_page', 5);
}
return $query;
});
В этом примере мы изменяем количество постов на главной странице на 5
Пример фильтрации постов по типу:
add_filter('query', function($query) {
if (is_post_type_archive('product')) {
$query->set('post_type', 'product');
}
return $query;
});
Здесь мы устанавливаем тип постов на ‘product’ для архивов товаров
Пример добавления мета-запроса для сортировки постов:
add_filter('query', function($query) {
if (is_search()) {
$query->set('meta_key', 'rating');
$query->set('orderby', 'meta_value_num');
$query->set('order', 'DESC');
}
return $query;
});
Мы сортируем результаты поиска по мета-ключу ‘rating’ в порядке убывания
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо изменить параметры запроса к базе данных, чтобы адаптировать вывод контента под конкретные требования
– Производительность
Изменения в запросах могут повлиять на производительность, особенно если вы добавляете сложные условия или большое количество постов
– Предупреждения
Будьте осторожны с изменениями, которые могут конфликтовать с другими плагинами или темами, использующими свои собственные запросы
Альтернативы
Тип: action
Этот хук позволяет изменять параметры запросов до их выполнения и может быть более производительным в некоторых случаях
Используйте его, если вам нужно изменить параметры запроса на более раннем этапе, например, для всех запросов к постам