WordPress:通过术语 ID 获取顶级分类法
WordPress: Get top level taxonomy by term ID
我有一个自定义分类法的 ID。现在我尝试获取该 ID 的顶级分类法。
例如,这是我的分类树:
- 汽车(编号:1)
- 梅赛德斯 (ID: 2)
- S-Class (ID: 3)
我尝试根据ID 3从第一层(ID:1)获取ID
我找到了很多示例,但它们不适用于给定的一个示例 integer/ID。
例如这个:
function get_term_top_most_parent( $term_id, $taxonomy ) {
$parent = get_term_by( 'id', $term_id, $taxonomy );
while ( $parent->parent != 0 ){
$parent = get_term_by( 'id', $parent->parent, $taxonomy );
}
return $parent;
}
我将 $term_id
更改为 3
,但它没有任何作用。
经过一些测试,我找到了一个很好的答案。
我的代码现在看起来像这样:
$tax_ancestors = get_ancestors( $tax_first_id, 'product_cat' ); // $tax_first_id = 3
if ( !empty($tax_ancestors)) :
$tax_last_id = end($tax_ancestors);
else :
$tax_last_id = $tax_first_id;
endif;
我有一个自定义分类法的 ID。现在我尝试获取该 ID 的顶级分类法。
例如,这是我的分类树:
- 汽车(编号:1)
- 梅赛德斯 (ID: 2)
- S-Class (ID: 3)
- 梅赛德斯 (ID: 2)
我尝试根据ID 3从第一层(ID:1)获取ID
我找到了很多示例,但它们不适用于给定的一个示例 integer/ID。
例如这个:
function get_term_top_most_parent( $term_id, $taxonomy ) {
$parent = get_term_by( 'id', $term_id, $taxonomy );
while ( $parent->parent != 0 ){
$parent = get_term_by( 'id', $parent->parent, $taxonomy );
}
return $parent;
}
我将 $term_id
更改为 3
,但它没有任何作用。
经过一些测试,我找到了一个很好的答案
我的代码现在看起来像这样:
$tax_ancestors = get_ancestors( $tax_first_id, 'product_cat' ); // $tax_first_id = 3
if ( !empty($tax_ancestors)) :
$tax_last_id = end($tax_ancestors);
else :
$tax_last_id = $tax_first_id;
endif;