获取自定义分类的二级术语

时间:2012-07-17 作者:Adige72

我想在自定义分类法中获取特定父级(第一级)术语的第二级术语。听起来很复杂,但会很有用。

Term 1
   SubTerm-1.1
   SubTerm-1.2
       SubTerm-1.2.1
Term 2
   SubTerm-2.1
说,如果SubTerm->parent 是项1的id,那么我想输出子项1.1和1.2,但不是1.2.1。

wp_list_categories(array(\'depth\' => 2, \'taxonomy\' => \'customtax\')); 是不是我正在寻找,因为它列出了他们的链接,这是我不想,也没有过滤选项SubTerm->parent 身份证件

有什么想法吗?

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

您可以使用PHP的array_filter 处理返回结果的分类查询函数的结果,然后显示结果。类似于:

# This returns the whole taxonomy...
$whole_tax = get_terms(\'customtax\', array(\'hide_empty\' => 0));
$second_level = array_filter($whole_tax, function ($t) {
  # This term has a parent, but its parent does not.
  return $t->parent != 0 && get_term($t->parent, \'customtax\')->parent == 0;
});
此时可以渲染$second_level 以您想要的任何格式输出。

注意。如果这经常用于繁忙的一方,应避免所有这些额外的get_term 通过读取$whole_tax 数组,假定文档的语句get_term 总是在传递id时访问数据库。

SO网友:webjuice
$tax =\'taxonomy\';
        $args = array(
          \'taxonomy\' => $tax,
          \'hide_empty\' => false,
          \'parent\' => 0,
          );
    $toplv_term_query = new WP_Term_Query($args);
        foreach($toplv_term_query->get_terms() as $toplv_term){
             $args = array(
               \'taxonomy\' => $tax,
               \'hide_empty\' => false,
               \'parent\' => $toplv_term->term_id,
              );
          $secondlv_term_query = new WP_Term_Query($args);
              foreach($secondlv_term_query->get_terms() as $secondlv_term){
                   $secondlv_term->term_id;

             }
        }
结束

相关推荐

以编程方式添加TERMS/TERM_TASTIONIES时出现异常行为

这在我看来确实像个虫子。我为您编写了以下代码,以便在新安装上对其进行测试。基本上,代码将在“未分类”下添加两个子类别,以实现以下效果uncategorized sub-uncategorized sub-sub-uncategorized 将它们添加到wp\\U terms和wp\\U term\\u分类中没有问题。已正确添加两个父ID。问题出在wp管理ui中。您只能看到未分类和子未分类。最后一个(sub-sub)在运行中丢失!但是,如果您在同一个“添加类别”