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 Как исключить категорию из основного цикла
Альтернативный пример, показывающий как изменить только основной цикл и исключить из него категорию 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' );
} #2 Выполним код, только если это главный цикл:
if( is_main_query() ){
// здесь код который нужно выполнить.
}
Заметки
- Global. WP_Query.
$wp_queryWordPress Query object.
Список изменений
| С версии 3.3.0 | Введена. |