Описание parse_query
— Action
Хук parse_query позволяет изменять параметры запроса перед выполнением выборки данных из базы. Он срабатывает на этапе обработки запроса, что позволяет изменять параметры запроса, такие как посты, таксономии и другие элементы, влияя на вывод контента на страницах сайта
Примеры использования
Пример изменения количества постов на странице:
add_action('parse_query', function($query) {
if (!is_admin() && $query->is_main_query()) {
$query->set('posts_per_page', 10);
}
});
В этом примере мы устанавливаем количество постов на странице равным 10 для главного запроса на фронтенде
Пример ограничения вывода постов по категории:
add_action('parse_query', function($query) {
if (!is_admin() && $query->is_main_query() && is_home()) {
$query->set('category_name', 'news');
}
});
Здесь мы ограничиваем вывод постов на главной странице только постами из категории ‘news’
Пример изменения типа постов для определённого запроса:
add_action('parse_query', function($query) {
if (!is_admin() && $query->is_main_query() && is_post_type_archive('product')) {
$query->set('post_type', 'custom_product');
}
});
В этом примере мы меняем тип постов на архиве ‘product’ на ‘custom_product’
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо изменить параметры запроса перед выполнением выборки данных, например, для настройки постов на главной странице или в архиве
– Производительность
Изменения через этот хук могут повлиять на производительность, если выполняются сложные запросы или условия. Оптимизируйте код и условия, чтобы избежать лишних затрат
– Предупреждения
Будьте осторожны с изменениями, чтобы не нарушить логику других плагинов или тем, которые могут полагаться на стандартные параметры запроса
Альтернативы
Тип: action
Этот хук срабатывает перед выполнением запроса и позволяет изменять параметры запроса более гибко
Используйте pre_get_posts, если хотите настроить запросы более подробно, включая условия для различных типов страниц