Циклы – не самая лёгкая для понимания тема в изучении WordPress, поэтому возможно вам будет легче изучить её при помощи моего видеоурока.
Условный тег, возвращает true
, если цикл, в теле которого выполняется действие является основным циклом страницы, иначе возвращает false
.
is_main_query()
Функция не имеет параметров.
if( is_main_query() ) { // какой-нибудь код }
pre_get_posts
— это хук, позволяющий модифицировать цикл непосредственно перед выводом постов. Действие хука распространяется на абсолютно все циклы вывода, именно поэтому нам и понадобится проверка через is_main_query()
.
Не стал ничего особо придумывать, решил взять пример из англоязычного кодекса. Суть этого примера в том, что если в основном цикле, находящемся не в админке, не определена рубрика — тогда исключим из него рубрику с ID = 5.
add_action( 'pre_get_posts', 'true_exclude_category' ); function true_exclude_category( $query ) { if ( !is_admin() // находимся не в админке && $query->is_main_query() // текущий цикл основной && ! $query->get( 'cat' ) ) { // в цикле не выбрана рубрика $query->set( 'cat', '-5' ); } }
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.