我需要获取分类术语的最顶层术语(顶级祖先)。
假设以下术语层次结构:
North America
United States
New York
New York City
South America
Mexico
如果我知道“纽约”的ID,我需要获得“北美”术语的ID
在搜索Google之后,我正在使用stackexchange和其他一些地方找到的一个经过调整的功能。
然而,在我的主题中使用此函数时,由于某种原因,while循环变成了无限循环,即使提供的$term\\u id和$taxonomy是正确的。将Wordpress置于调试模式无法帮助我跟踪问题。如果我删除了函数中的while循环,Wordpress将恢复正常功能(否则在输出无限循环时挂起)。然而,我真的不知道如何才能获得分类术语的最顶层父级。
function get_term_top_most_parent( $term_id, $taxonomy ) {
$child = get_term_by( \'id\', $term_id, $taxonomy );
if ( $child ) {
$parent = get_term_by( \'id\', $child->term_id, $taxonomy );
$parent = $parent->parent;
if ( $parent ) {
while ( $parent != 0 ) :
$parent = get_term_by( \'id\', $parent, $taxonomy );
$parent = $parent->parent;
endwhile;
}
else {
$parent = $child->term_id;
}
return $parent;
}
}