Si vous avez des taxonomies en cascade (parent, enfant de niveau 1, enfant de niveau 2, etc.), vous pouvez avoir besoin d’afficher le nom de la taxonomie parent dans une page archive, dans une page de contenu, ou pour toute autre occasion.
Un exemple très simple consisterait à afficher une image représentant la catégorie principale dans laquelle se trouve un post.
La fonction suivante permet donc de remonter les infos de la taxonomie de premier niveau, autrement dit les infos de la taxonomie du plus haut parent.
Il vous suffit de coller cette fonction dans votre fichier functions.php, puis pour l’utiliser, de renseigner l’ID de la taxonomie dont vous voulez connaitre le parent le plus haut, ainsi que le slug de la taxonomie (optionnel). Par défaut, il s’agit de la taxo category.
function bweb_get_term_parent($term_id, $taxonomy = 'category'){ // Récupère le term courant $parent = get_term_by( 'id', $term_id, $taxonomy); // Remonte dans la hiérarchie du term while ($parent->parent != '0'){ $term_id = $parent->parent; $parent = get_term_by( 'id', $term_id, $taxonomy); } return $parent; }
Vous obtenez ainsi toutes les datas de la taxonomie parente. Ces informations sont générées grâce à la fonction get_term de WordPress.
J’ai repris votre exemple pour trouver la page ou article de plus niveau lorsque ces dernièr(e)s sont imbriquée.
$id_page_courante = $post->ID;
while (wp_get_post_parent_id($id_page_courante) != ‘0’){
$id_page_courante = wp_get_post_parent_id($id_page_courante);
}
echo $id_page_courante;//$id_page_courante est la page de plus haut niveau