Verwenden der Schleife, um alle Ebenen von Unterseiten unter einer übergeordneten Seite anzuzeigen? Auf halbem Wege

Ich muss die Schleife durch alle Kinder eines Elternteils, alle Kinder jedes Kindes, etc. laufen lassen. Der Grund, warum ich die Schleife anstelle eines Auflistungs-Tags wie wp_list_pages brauche, ist so, dass ich alle zugehörigen Informationen anzeigen kann mit den Seiten, die WP-Vorlagen-Tags und -functionen verwenden. Es ist für ein Schaufenster-Display, das hierarchischen Inhalt hat und neu angeordnet wird, also Seiten> Beiträge für diese Verwendung.

Ich bin so weit gekommen, die Schleife zu bekommen, um Kindern der aktuellen Seite und einer inneren Schleife zu zeigen, Enkel zu zeigen, aber das ist nur ein Brute-Force-Prototyp, und ich muss es auf die nächste Ebene bringen.

Ich denke, ich brauche eine Schleife, die mit post_parent beginnt (so dass Unterseiten angezeigt werden), aber eine function zum Ändern der Post-ID in jede gefundene untergeordnete Seite einfügen, sodass die Schleife weiterläuft, bis sie ausläuft. dann wird 1 Ebene zurückgesetzt, zur nächsten verfügbaren ID usw.

Mein Problem ist, dass ich nicht genug von einem WP-Programmierer (oder einem echten Programmierer) habe, um das zu erreichen. Wenn es alles im Code ginge, würde ich wetten, dass ich es schaffen könnte, aber WP hat offensichtlich versteckte functionen mit have_post und the_post, um die verfügbaren Post-IDs zu durchlaufen, und das hat mich verloren, was ich brauche.

Hier bin ich im Moment. Jede Hilfe wird sehr geschätzt!

 -1, 'post_parent' => $post->ID, 'post_type' => 'page', 'post_status' => '', 'orderby' => 'title', 'order' => 'ASC',); query_posts($args); ?>  <a href="https://wordpress.stackexchange.com/questions/13669/using-the-loop-to-show-all-levels-of-subpages-under-a-parent-page-halfway-there/">:  have_posts()) : $inner_query->the_post(); ?> <a href="https://wordpress.stackexchange.com/questions/13669/using-the-loop-to-show-all-levels-of-subpages-under-a-parent-page-halfway-there/">:    

Solutions Collecting From Web of "Verwenden der Schleife, um alle Ebenen von Unterseiten unter einer übergeordneten Seite anzuzeigen? Auf halbem Wege"

Klingt, als ob Sie nach einer rekursiven function suchen, dh nach einer function, die sich selbst aufruft. Hier ist ein grober Überblick, wie es gemacht werden kann:

 function wpse13669_show_all_children( $post_id, $current_level ) { $children = get_posts( array( 'post_type' =>'page', 'posts_per_page' =>-1, 'post_parent' => $post_id, 'order_by' => 'title', 'order' => 'ASC' ) ); if ( empty($children) ) return; echo '
    '; foreach ($children as $child) { /* Here would be the point where you do whatever you want to display the posts. The variable $current_level can be used if you want to style different levels in the hierarchy differently */ echo '
  • '; echo ''; echo apply_filters( 'the_title', $child->post_title ); echo ''; // now call the same function for child of this child wpse13669_show_all_children( $child->ID, $current_level+1 ); echo '
  • '; } echo '
'; }

Hinweis: Ich habe meinen Code bearbeitet, um die Art der geschachtelten

    -Listen anzuzeigen, die nach

      klingt. Wenn Sie sehen möchten, wie WordPress solche Sachen intern erledigt (das ist viel komplizierter als das, aber es lohnt sich herauszufinden, ob Sie etwas wirklich Brauchbares in Ihrem Code machen müssen), sollten Sie den Quellcode für die class-wp durchsehen -walker.php Datei, wo die Walker-class, die alle verschiedenen geschachtelten Listen (Menüs, Kommentare, Seitenlisten, etc.) in WP behandelt.

      Wenn Sie diese function mit der gewünschten Ausgabestruktur definieren und sie nur innerhalb Ihrer Schleife aufrufen, sollte sie das tun, wonach Sie suchen. Ich lege eine $ current_level-Variable dort hinein, so dass Sie einfach Kinder anders als Enkelkinder stylen können, und so weiter.

      (in deiner Hauptschleife)

       wpse13669_show_all_children( $post->ID, 1 );