Je dois obtenir le terme le plus haut (ancêtre de niveau supérieur) d'un terme de taxonomie.
Supposons la hiérarchie de termes suivante:
North America
United States
New York
New York City
South America
Mexico
Je dois obtenir l'identifiant du terme "Amérique du Nord" si je connais l'identifiant de "New York"
J'utilise une fonction adaptée trouvée sur stackexchange et quelques autres endroits après une recherche sur Google.
Cependant, lors de l'utilisation de cette fonction dans mon thème, la boucle while apparaît dans une boucle infinie pour une raison quelconque, même si les variables $ term_id et $ taxonomy fournies sont correctes. Mettre Wordpress en mode débogage ne m'a pas aidé à identifier le problème. Si je supprime la boucle while de la fonction, Wordpress rétablit son fonctionnement correct (sinon, il se bloque lors de la sortie d'une boucle infinie). Cependant, je ne sais pas vraiment comment sinon je pourrais obtenir le plus haut parent d'un terme de taxonomie autrement.
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;
}
}
Je suppose que cette fonction correspond à ce que vous recherchez -> get_ancestors ()