从所有循环中排除分类术语,但将其放在小部件上

时间:2013-10-05 作者:Grávuj Miklós Henrich

我已从所有帖子中排除了自定义帖子类型分类术语,如下所示:

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;  
}
但我需要在特定的小部件循环中包含该分类术语,并且只针对特定的小部件。有机会吗?

我之所以遵循上述方式,是因为我创建了一个产品类别,我只想在我创建的小部件上显示它,除了搜索查询和分类术语页面之外,其他任何地方都不会显示它。在所有其他循环中,我希望它被排除在外。

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

看起来您排除了一个分类法术语,而不是整个分类法。这就是你想要的吗?

但在回答问题时。。。

在小部件中的查询之前添加:

remove_action( \'pre_get_posts\', \'exclude_category_posts\' );
然后,您可能希望通过重复以下操作将其放回查询之后:

add_action( \'pre_get_posts\', \'exclude_category_posts\' );
这是一种有点“脏”的方法,并假设这是您的站点和小部件。如果情况不同,你可能需要更复杂的东西。

结束

相关推荐

WP_QUERY已排除类别的分页仍然计算在内

因此,我正在使用分页导航创建一个自定义WP\\U查询循环。我想在特定类别中每页显示4篇文章。这很好,除了next\\u post\\u link()在决定是否显示链接时似乎仍然会计算排除的类别。我如何确保帖子数量不包括其他类别,以便下一个链接仅在该特定类别中显示的帖子超过4篇时显示?。我的代码:<div class=\"news-box-wrapper\"> <?php $args = array (\'post_typ