我已从所有帖子中排除了自定义帖子类型分类术语,如下所示:
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\' );
这是一种有点“脏”的方法,并假设这是您的站点和小部件。如果情况不同,你可能需要更复杂的东西。