So steuern Sie die Anzeige von Seitenlisten in der Seitenleiste, die keine Kinder enthält

Ich verwende den folgenden Code, um die untergeordneten Seiten der aktuellen Seite in meiner Seitenleiste aufzulisten. Es funktioniert sehr gut.

$titlenamer = get_the_title($post->post_parent); $output = wp_list_pages('echo=0&depth=1&title_li=
'.$titlenamer.'
' ); if (is_page( )) { $page = $post->ID; if ($post->post_parent) { $page = $post->post_parent; } $children=wp_list_pages( 'echo=0&child_of=' . $page . '&title_li=' ); if ($children) { $output = wp_list_pages ('echo=0&child_of=' . $page . '&title_li=
'.$titlenamer.'
'); } } echo $output;

Aber wenn ein Elternmenü keine Kinder hat, werden in diesem Code alle Elternseiten in meiner Seitenleiste aufgelistet. Wie kann ich das kontrollieren?

Wenn das übergeordnete Menü keine untergeordneten Elemente enthält, möchte ich bestimmte Seiten anzeigen, die ich definiere. Wenn dies nicht möglich ist, möchte ich nichts für eine Seite anzeigen, die keine Childs hat.

Solutions Collecting From Web of "So steuern Sie die Anzeige von Seitenlisten in der Seitenleiste, die keine Kinder enthält"

Ich würde versuchen, Ihre $children Definition mit get_page_children() oder get_children() :

 < ?php global $post; $children = get_children( array( 'post_type' => 'page', 'post_parent' => $post->ID, 'post_status' => 'publish' ) ); if ( $children ) { // Code to list child pages goes here } ?> 

Außerdem gibt wp_list_pages() immer eine Zeichenkette zurück (entweder wp_list_pages() oder leer). Wenn Sie dagegen testen wollen, verwenden Sie:

 if ( '' != $children ) 

… statt nur:

 if ( $children ) 

Weil letzteres immer wahr zurückgibt , da die Rückgabe eine (leere) Zeichenkette ist.