it-swarm.com.de

Wie kann ich hierarchische Beziehungen über Kinder hinaus erkennen (Enkel, Urenkel usw.)?

Häufig erfordert ein benutzerdefiniertes Design für Wordpress einen dynamischen Inhalt, der eine Beziehung zu einer Seite auf oberster Ebene einer Website widerspiegelt.

Gibt es ein Bedingtes Tag, das überprüft, ob die aktuelle Seite ein Enkelkind ist (oder durch weitere Generationen getrennt ist), und zwar anhand der ID?

1
PNMG

Es stellte sich heraus, dass es eine ausgezeichnete Funktion gibt, die in den Wordpress-Forenis_tree() weitergegeben wurde.

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

Um es in der Vorlage zu verwenden, geben Sie ihm einfach die ID, mit der Sie die aktuelle Seite vergleichen möchten. Wenn die aktuelle Seite ein Nachkomme ist, wird true zurückgegeben.

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

1
PNMG