我已从所有帖子中排除了自定义帖子类型分类术语,如下所示:
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;  
}
 但我需要在特定的小部件循环中包含该分类术语,并且只针对特定的小部件。有机会吗?
我之所以遵循上述方式,是因为我创建了一个产品类别,我只想在我创建的小部件上显示它,除了搜索查询和分类术语页面之外,其他任何地方都不会显示它。在所有其他循环中,我希望它被排除在外。
 
                    最合适的回答,由SO网友:s_ha_dum 整理而成
                    看起来您排除了一个分类法术语,而不是整个分类法。这就是你想要的吗?
但在回答问题时。。。
在小部件中的查询之前添加:
remove_action( \'pre_get_posts\', \'exclude_category_posts\' );
 然后,您可能希望通过重复以下操作将其放回查询之后:
add_action( \'pre_get_posts\', \'exclude_category_posts\' );
 这是一种有点“脏”的方法,并假设这是您的站点和小部件。如果情况不同,你可能需要更复杂的东西。