Description

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

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.

Retourne

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

Structure de la fonction term_is_ancestor_of()

Définie dans le fichier wp-includes/taxonomy.php à la ligne 1489 :

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 );
}

Fonctions utilisées par term_is_ancestor_of()

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ù trouver 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