is_main_query()
Проверяет в главном ли цикле WordPress выполняется действие. Условный тег.
Функцию нужно использовать только внутри циклов, так как тег предназначен для определения главного цикла WordPress.
Работает на основе: WP_Query::is_main_query()
1 раз — 0.000011 сек (очень быстро) | 50000 раз — 0.01 сек (скорость света) | PHP 7.0.14, WP 4.7
Хуков нет.
Возвращает
true|false
.
Использование
if( is_main_query() ){ ... };
Примеры
#1 Выполним код, только если это главный цикл:
if( is_main_query() ){ // здесь код который нужно выполнить. }
#2 Как исключить категорию из основного цикла
Альтернативный пример, показывающий как изменить только основной цикл и исключить из него категорию 5. Разумеется исключать категорию 5 будем, только в том случае, если в запросе не указан параметр cat (напрямую не указана категория). Для этого мы будем использовать фильтр (хук) pre_get_posts
:
add_action( 'pre_get_posts', 'foo_modify_query_exclude_category' ); function foo_modify_query_exclude_category( $query ) { if ( $query->is_main_query() && ! $query->get( 'cat' ) ) $query->set( 'cat', '-5' ); }
Заметки
- Global. WP_Query. $wp_query WordPress Query object.
Список изменений
С версии 3.3.0 | Введена. |