Исключить таксономический термин из всех циклов, но иметь его в виде виджета

Я исключил термин таксономии пользовательского типа сообщений из всех сообщений, подобных этому:

add_action( 'pre_get_posts', 'exclude_category_posts' ); function exclude_category_posts( $the_query ) { $taxquery = array( array( 'taxonomy' => 'product_cat', 'field' => 'tag_ID', 'terms' => array( 157 ), 'operator' => 'NOT IN' ) ); $the_query->set( 'tax_query', $taxquery ); return $the_query; } 

Но мне нужен этот термин таксономии, который будет включен обратно в конкретный виджет и только для этого конкретного виджета. Есть ли шанс на это?

Причина, по которой я следовал выше, потому что я создал категорию продукта, которую я хотел бы показывать только в виджетах, которые я создал, и нигде кроме поисковых запросов и страницы терминов таксономии. На всех других циклах я бы хотел, чтобы это исключалось.

Solutions Collecting From Web of "Исключить таксономический термин из всех циклов, но иметь его в виде виджета"

Похоже, вы исключили термин таксономии, а не всю таксономию. Это то, что вы намеревались?

Но на ответ …

Прямо перед тем, как ваш запрос добавит в виджет:

 remove_action( 'pre_get_posts', 'exclude_category_posts' ); 

И тогда вы, вероятно, захотите вернуть его после этого запроса, повторяя:

 add_action( 'pre_get_posts', 'exclude_category_posts' ); 

Это немного «грязный» метод и предполагает, что это ваш сайт и ваш виджет. Вам может понадобиться нечто более сложное, если обстоятельства отличаются от этого.