问题描述

说我有以下分类术语:

Term 1
  Term 1.1
  Term 1.2
Term 2
  Term 2.1

如何获得分配到术语 1 的职位,不包括分配到术语 1.1 或术语 1.2 的职位?

例如:

$pages = get_posts(array(
  'post_type' => 'page',
  'numberposts' => -1,
  'tax_query' => array(
    array(
      'taxonomy' => 'taxonomy-name',
      'field' => 'id',
      'terms' => 1 // Where term_id of Term 1 is "1".
    )
  )
);

还给了我分配了条款 1.1 和 1.2 的帖子。

谢谢。

最佳解决方案

在查看/wp-includes/taxonomy.php 中的 WP_Tax_Query 类时,我发现有一个默认为 true 的’include_children’ 选项。我修改了我原来的 get_posts() 调用与以下,它的工作原理:

$pages = get_posts(array(
  'post_type' => 'page',
  'numberposts' => -1,
  'tax_query' => array(
    array(
      'taxonomy' => 'taxonomy-name',
      'field' => 'id',
      'terms' => 1, // Where term_id of Term 1 is "1".
      'include_children' => false
    )
  )
));

更多查询参数列表:http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。