TAX_QUERY:当帖子应用了相应的子术语时,不显示带有父术语的帖子

时间:2019-10-12 作者:user1706680

我有一个层次分类法download-category 从中,我只希望显示带有父术语的帖子:

$downloads_parent_posts = get_posts( array(
    \'post_type\'        => \'downloads\',
    \'orderby\'          => \'title\',
    \'order\'            => \'ASC\',
    \'tax_query\' => array(
      array(
        \'taxonomy\'         => \'download-category\',
        \'terms\'            => $term->term_id,
        \'field\'            => \'term_id\',
        \'include_children\' => false
      )
    ),
) );
此查询工作正常。

现在我想实现的是,只显示没有相应父术语的子项的帖子。

例如,我有一个父分类术语“电影”和一个子分类术语“恐怖”。post既有父术语,也有子术语。这篇文章不应该出现在上面的查询中。

是否可以以某种方式扩展查询或添加一个条件,以筛选出具有相应子术语的帖子到父术语?

任何帮助都将不胜感激。

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

我可以看出你想说得很清楚,但这仍然是一个令人困惑的问题,让我的大脑有点崩溃。我想这可能会达到你想要的,但我不能完全确定我是否正确理解你。无论如何,请尝试一下,它可能会起作用,也可能不会起作用:

$downloads_parent_posts = get_posts( array(
    \'post_type\'        => \'downloads\',
    \'orderby\'          => \'title\',
    \'order\'            => \'ASC\',
    \'tax_query\' => array(
      \'relation\' => \'AND\',
      array(
        \'taxonomy\'         => \'download-category\',
        \'terms\'            => $term->term_id,
        \'field\'            => \'term_id\',
        \'include_children\' => false
      ),
      array(
        \'taxonomy\'         => \'download-category\',
        \'terms\'            => get_term_children($term->term_id, $term->taxonomy),
        \'field\'            => \'term_id\',
        \'operator\'         => \'NOT IN\',
      )
    ),
) );

相关推荐

rewrite rules hierarchical

我希望我的WordPress遵循以下规则:/productes/ 包含所有产品的页面/productes/[category]/ 包含该类别所有产品的分类页面/productes/[category]/[subcategory]/ 包含该类别所有产品(与2相同)的分类页面/[productes]/[category]/[product]/ A.single-productes.php 将显示类别产品/[productes]/[category]/[subcategory]/[product]/ A.sin