仅列出特定自定义分类术语的第一级子项

时间:2013-11-08 作者:Evster

我的网站设置如下:

  • Post Type: 产品Taxonomy: 产品目录Taxonomy Slug: hydro一词有几个直系子术语和几个孙术语。

    我需要编写一个循环,只显示自定义分类术语“hydro”(即跳过孙子术语)的第一级子项,以及它们各自的分类存档页面的永久链接。

    我试过和get_terms() 在不同的化身,但我只是不能得到它的权利。

    非常感谢您的帮助。谢谢

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

首先,您需要hydro term的术语id,您可以使用get_term_by

$hydro = get_term_by(\'slug\', \'hydro\', \'product_cat\');
之后,您可以使用术语id作为\'parent\' 的参数get_terms

$hydro_children = get_terms( \'product_cat\', array( \'parent\' => $hydro->term_id ) );
现在,您可以显示这些子项的列表:

if ( ! empty($hydro_children) ) {
  echo \'<ul>\';
  foreach( $hydro_children as $hydro_child ) {
    echo \'<li><a href="\' . get_term_link($hydro_child, \'product_cat\') . \'">\';
    echo $hydro_child->name . \'</a></li>\';
  }
  echo \'</ul>\';
}
和/或使用$hydro_children 附加条款,如果需要,可以跳过只有$hydro_children 术语(“hydro”的孙子孙女),感谢\'include_children\' 税务查询参数:

$args = array(
  \'post_type\' => \'product\', // I guess
  \'tax_query\' => array(
    array(
      \'taxonomy\' => \'product_cat\',
      \'field\' => \'id\',
      \'terms\' => wp_list_pluck($hydro_children, \'term_id\'),
      \'include_children\' => false
    )
   )
);
$query = new WP_Query( $args );

结束

相关推荐

GET_POST_TERMS未按预期工作

我有一个称为“水果”的自定义帖子类型,在这个类型下,我有一个称为“水果类别”的层次分类法当我在Fruit下创建一个新帖子时,我可以将其分配到一个“术语”,就像您在普通帖子类别下一样,但在Fruit Categories分类下。我在Fruit上增加了三个职位,每个职位分别分配给一个任期;“苹果”、“梨”和“香蕉”。所有这些都很好,但现在我想创建一个归档页面,简单地列出UL中的术语,用于自定义帖子类型,如下所示;我的网站。玉米/水果我面临的问题是,我使用的每个查询似乎只返回第一个词Apples。其他两个没有显