自定义层级分类和自定义帖子类型列表包含多余帖子

时间:2018-11-09 作者:piotao

我希望将自定义分类术语列为标题,并将自定义帖子列为标题下的列表:

Basics

<列表项目1

Movies

<列出项目3

Images

<但是,自定义分类法是分层的,如果层次结构看起来像“基础/电影”和“基础/图像”,则来自电影和图像的所有帖子也会列在“基础”下。因此,当前结果如下所示:

Basics

<列表项1-错误

Movies

<列出项目3

Images

<因此,实际代码如下(简化):

$cats = get_categories(array(\'taxonomy\'=>\'dzialy\'));
foreach($cats as $cat){
    $data[] = array(
      \'cat\'   => $cat,
      \'post\'  => get_posts(array(
        \'post_type\' => \'tutorial\',
        \'numberposts\'=> -1,
        \'hierarchical\' => false,
        \'tax_query\' => array(
          array(
            \'taxonomy\' => $cat->taxonomy,
            \'field\'    => \'slug\',
            \'terms\'    => array($cat->slug),
            \'operator\' => \'IN\'
          )
        )
      ))
    );
}
现在,我使用$数据数组显示它们,将[\'cat\']作为类别数据,[\'post\']作为完整的post数据。[\'cat\']数组中的post编号正确。[\'post\']部分中的post列表包含冗余post。在所有这些数据中,并没有任何迹象表明帖子来自于是否具有层次结构的类别,也并没有父信息。如何创建“纯”列表?每个帖子只在一个自定义类别中。

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

看看Taxonomy Parameters for WP_Query. 您缺少的论点是include_children, 默认情况下true, 您需要将其设置为false,以便在子术语中不包含帖子。

结束