Paramètres

$term1(int|object)requis

Id ou objet du terme parent à vérifier.

$term2(int|object)requis

Le terme enfant.

$taxonomy(string)requis

Nom de la taxonomie à laquelle $term1 et $term2 appartiennent.

Description / Informations supplémentaires

On peut autant utiliser un id qu'un objet de terme pour les deux premier paramètres.

Retourne

(bool) True si $term1 est le parent de $term2.

Déclaration et structure de la fonction term_is_ancestor_of()

function term_is_ancestor_of( $term1, $term2, $taxonomy ) {
    if ( ! isset( $term1->term_id ) ) {
        $term1 = get_term( $term1, $taxonomy );
    }
    if ( ! isset( $term2->parent ) ) {
        $term2 = get_term( $term2, $taxonomy );
    }

    if ( empty( $term1->term_id ) || empty( $term2->parent ) ) {
        return false;
    }
    if ( $term2->parent === $term1->term_id ) {
        return true;
    }

    return term_is_ancestor_of( $term1, get_term( $term2->parent, $taxonomy ), $taxonomy );
}
term_is_ancestor_of()

Vérifie si un terme est le parent d'un autre terme.

get_term()

Retourne toutes les données d'un terme en donnant son ID.

Où est utilisée la fonction term_is_ancestor_of() dans le CMS WordPress

Exemple

Si la taxonomie est son et le terme est musique :
if ( term_is_ancestor_of( 4, 'musique', 'son' ) || has_term( 4, 'son' ) ){
    wp_nav_menu( array( 'menu' => 'Musique' ) );
}

Sources

Codex WordPress : term_is_ancestor_of()

Autres fonctions dans le même fichier : wp-includes/taxonomy.php

Retour