WordPress : Comment puis-je détecter des relations hiérarchiques au-delà des enfants (petit-enfant, arrière-petit-enfant, etc.) ?

Publié par Jean-Michel le

Souvent, un thème personnalisé pour WordPress nécessitera un contenu dynamique qui reflète une relation avec une page de niveau supérieur d’un site.

Existe-t-il une balise conditionnelle qui vérifiera si la page actuelle est un petit-enfant (ou séparée par d’autres générations) par ID ?

Solution n°1 trouvée

Il s’avère qu’il existe une excellente fonction qui a été diffusée sur les forums WordPressis_tree()

function is_tree($pid) {      // $pid = The ID of the page we're looking for pages underneath
    global $post;         // load details about this page

    $anc = get_post_ancestors( $post->ID );
    foreach($anc as $ancestor) {
        if(is_page() && $ancestor == $pid) {
            return true;
        }
    }
    if(is_page()&&(is_page($pid)))
               return true;   // we're at the page or at a sub page
    else
               return false;  // we're elsewhere
};

Pour l’utiliser dans un modèle, donnez-lui simplement l’ID avec lequel vous voulez vérifier la page actuelle, et il renverra vrai si la page actuelle est un descendant.

<?php if(is_tree(12)){echo 'foobar';} ?>

Catégories : Wordpress

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *