Wie man eine verschachtelte WP_Query-Abfrage richtig zurücksetzt

Mir fehlt hier etwas. Was ist der richtige Weg, um eine Abfrage zurückzusetzen, so dass sie keine anderen Abfragen beeinträchtigt, in die sie verschachtelt sein könnte?

Das ist die Art von Ergebnis, für das ich mich interessiere:

Hauptseite

Dies ist der Inhalt der Hauptseite. Lassen Sie uns nun einige benutzerdefinierte verschachtelte Abfragen anzeigen.

Äußere Seite 1

Inner post 1 Inner post 2 

Der äußere Inhalt von Seite 1 wird fortgesetzt …

Äußere Seite 2

  Inner post 1 Inner post 2 

Der äußere Inhalt ging weiter …

…etc.

Aber ich kann den Outer Page X content continued Teil der Outer Page X content continued – er wird immer entweder auf die innere Abfrage oder die Hauptseitenabfrage zurückgesetzt.

Hier ist meine Seitenvorlage. Es ist kommentiert mit dem Verhalten, das ich mit jeder der Reset-functionen ( wp_reset_postdata() , wp_reset_query() , $query->reset_query() und $query->reset_postdata() ) erhalten.

 // BEGIN PAGE TEMPLATE while ( have_posts() ) : the_post(); the_title(); // "Main page" /* --------- OUTER QUERY --------- */ $outer_query = new WP_Query( [ 'post_type' => 'page' ] ); if ($outer_query->have_posts()) : while ($outer_query->have_posts()) : $outer_query->the_post(); the_title(); // "Outer page 1", "Outer page 2", etc. /* --------- INNER QUERY --------- */ $inner_query = new WP_Query( [ 'post_type' => 'post', 'posts_per_page' => 2 ] ); if ($inner_query->have_posts()) : while ($inner_query->have_posts()) : $inner_query->the_post(); the_title(); endwhile; endif; /** * Now I'm done with the inner query. * How do I get back to the outer query? * * Desired value of the_title(): * "Outer page 1" on first iteration, "Outer page 2" on second, etc. */ // wp_reset_postdata(); // Nope! Results in "Main page" // wp_reset_query(); // Nope! Results in "Main page" // $inner_query->reset_postdata(); // Nope! Results in "Inner post 1" // $inner_query->reset_query(); // Nope! Results in "Inner post 2" // If no reset is used: // Nope! Results in "Inner post 2" the_title(); endwhile; endif; wp_reset_postdata(); // Now back to the main page the_title(); // Works endwhile; // END OF PAGE TEMPLATE 

Was ist der richtige Weg, dies zu tun? Ich suche nach einer verallgemeinerbaren Antwort, die nicht darauf angewiesen ist zu wissen, wie viele Ebenen die Abfrage tief ist oder in welchem ​​Kontext sie verwendet wird. dh etwas, das in einen Shortcode extrahiert werden könnte.

Solutions Collecting From Web of "Wie man eine verschachtelte WP_Query-Abfrage richtig zurücksetzt"