Wie kann ich hierarchische Beziehungen jenseits von Kindern (Enkel, Urenkel usw.) erkennen?

Oft erfordert ein benutzerdefiniertes Design für WordPress einen dynamischen Inhalt, der eine Beziehung zu einer Top-Level-Seite einer Website widerspiegelt.

Gibt es ein Bedingungs-Tag, das prüft, ob die aktuelle Seite ein Enkelkind ist (oder durch weitere Generationen getrennt ist) nach ID?

Solutions Collecting From Web of "Wie kann ich hierarchische Beziehungen jenseits von Kindern (Enkel, Urenkel usw.) erkennen?"

Es stellt sich heraus, dass es eine ausgezeichnete function gibt, die in den WordPress-Foren weitergegeben wurde. is_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 }; 

Um es in der Vorlage zu verwenden, geben Sie ihm einfach die ID, für die die aktuelle Seite überprüft werden soll, und es wird true zurückgegeben, wenn die aktuelle Seite ein Nachkomme ist.

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