这是我最终得到的解决方案。这也可以帮助其他人。
$taxonomy = "product-category";
$args = array(
\'taxonomy\' => $taxonomy,
\'orderby\' => \'name\',
\'order\' => \'ASC\',
\'hierarchical\' => true,
\'hide_empty\' => false,
);
$the_query = new WP_Term_Query($args);
$categories = $the_query->get_terms();
if ($categories){
foreach($categories as $category){
$ancestors = get_ancestors( $category->term_id, $taxonomy );
$category->ancestors = $ancestors;
$category->depth = count( $ancestors ) ;
if($category->depth === 3) :
echo $category->term_id . \'-\' . $category->depth . \'-\' . $category->name;
endif;
}
}
首先,我使用
WP_Term_Query 类创建terms对象并构建自定义查询,然后
get_terms() 检索所有术语。
使用的内部foreach循环get_ancestors() 函数返回包含给定对象的父对象的数组$category->depth 获取当前深度。