Zugriff auf Post-> ID außerhalb der Schleife zum Auflisten von untergeordneten Seiten

Ich möchte untergeordnete Seiten meiner aktuellen Seite in der Seitenleiste des Themas auflisten. Allerdings ist meine Sidebar (linke Seite) vor der Schleife in der Vorlage und die Post-> ID wird nichts zurückgeben, wenn es vor der Schleife ist.

Mein aktueller Code:

ID); ?> 

Ich habe etwas über das Aufrufen einer globalen Variable gelesen, um darauf zugreifen zu können, habe bisher aber kein Glück gehabt.

Jede Hilfe wäre willkommen.

Solutions Collecting From Web of "Zugriff auf Post-> ID außerhalb der Schleife zum Auflisten von untergeordneten Seiten"

… die Post-> ID wird nichts zurückgeben, wenn es vor der Schleife ist

Im Allgemeinen ist dies falsch. Die $post Variable wird lange vor dem Start der Schleife in Ihrem Thema für die meisten Seiten festgelegt. Die Hauptabfrage “primert” diese Variable auf den ersten Post in der Schleife. Das heißt, abhängig von dieser Variablen außerhalb der Schleife ist nicht die zuverlässigste Vorgehensweise. Zuverlässiger wäre es, get_queried_object zu verwenden.

 $qobj = get_queried_object(); wp_list_pages('title_li=&child_of='.$qobj->ID); 

Da get_queried_object abhängig von der Seite, auf der Sie sich befinden, unterschiedliche Informationen zurückgibt, sollten Sie auch den get_queried_object überprüfen, bevor Sie es verwenden.

 if (is_page()) { $qobj = get_queried_object(); wp_list_pages('title_li=&child_of='.$qobj->ID); } 

Oder überprüfen Sie das Objekt selbst.

 $qobj = get_queried_object(); if (isset($qobj->post_type) && 'page' == $qobj->post_type) { wp_list_pages('title_li=&child_of='.$qobj->ID); } 

Das sind nur Beispiele. Ich weiß nicht, wie deine genauen Bedingungen sind.

Versuche dies:

 // get the post id $post_id = get_queried_object_id(); // get the children $children = get_pages('child_of' => $post_id); //output them if( count( $children ) != 0 ) { echo ""; } 

versuchen Sie, Code wie zu machen

 global $post; var_dump($post);//test values in $post wp_list_pages('title_li=&child_of='.$post->ID); 

Es gibt wirklich nicht genug Informationen, um hier eine genaue Antwort zu geben, aber wenn Ihr Verdacht richtig ist, ersetzen Sie $post->ID durch get_the_ID() .