如何拉出类别中的帖子列表,同时排除该类别的子类别中的帖子

时间:2012-05-16 作者:Scott B

我使用get\\u posts()调用来获取特定类别中的帖子列表。然而,记录集还包括目标类别子类别中的帖子。

如何从查询中排除子类别?

$cat = get_query_var( \'cat\' );
$catHidden=get_cat_ID(\'hidden\');
$args = array(\'cat\' => "$cat,-$catHidden");
$myposts = get_posts($args);

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

如果您使用category__incategory__not_in 相反,它将只提取该类别中的帖子,而不提取子类别中的帖子。对于您的代码,如下所示:

$args = array(
    \'category__in\'     => $cat,
    \'category__not_in\' => $catHidden
);
注意:这将仅排除直接属于该类别的帖子。如果要排除该类别及其子类别中的帖子,请使用cat 使用否定语法。

此外,如果您需要更强大的查询,可以使用tax_query 参数,该参数将允许您设置include_children 您要查询的每个分类法和术语的参数。

结束

相关推荐

页面元框-Get_Categories下拉列表

我创建了一个包含所有现有类别的下拉列表的元框。页面管理员应该能够从下拉列表中选择一个类别,该类别将由wordpress的保存/更新页面功能保存。<select name=\"event-dropdown\" onchange=\'document.location.href=this.options[this.selectedIndex].value;\'> <option value=\"\"><?php echo esc_attr(__(\'Select Ev