Setzen Sie Postdata auf benutzerdefinierte Abfrage in verschachtelten Abfragen zurück

Ich habe eine Hauptabfrage, in der ich eine neue benutzerdefinierte Abfrage eingerichtet habe, um Posts abzurufen (denke an ‘verwandte Posts’ oder so ähnlich). Dann setze ich in jedem dieser Posts eine andere benutzerdefinierte Abfrage, lade Daten aus einem einzigen Post, und dann sollte ich eine Möglichkeit finden, Postdaten auf die erste benutzerdefinierte Abfrage zurückzusetzen. Wie kann ich das machen? Ich habe versucht, wp_reset_postdata (), aber das auf Hauptabfrage zurückgesetzt.

Ein vereinfachter Code würde so aussehen:

while ( have_posts() ) : the_post(); //Set up custom query $args = array( //Query args ); $custom_query = new WP_Query( $args ); //Custom query loop: while ( $custom_query->have_posts() ) : $custom_query->the_post(); //Display some data, //then set up a custom query again $args = array( //Different query args ); $custom_nested_query = new WP_Query( $args ); //Nested custom query loop while ( $custom_nested_query->have_posts() ) : $custom_nested_query->the_post(); //Do stuff, then reset to $custom_query since //I still need the post before $custom_query proceeds with the loop and loads the next one endwhile; //Display some more data from post queried by $custom_query before $nested_query was created endwhile; endwhile; 

Solutions Collecting From Web of "Setzen Sie Postdata auf benutzerdefinierte Abfrage in verschachtelten Abfragen zurück"

Sie können den $post in einer temp-Variable speichern und den $post $post zurück auf die temp-Variable setzen

 global $post; while ( have_posts() ) : the_post(); //Set up custom query $args = array( //Query args ); $custom_query = new WP_Query( $args ); //Custom query loop: while ( $custom_query->have_posts() ) : $custom_query->the_post(); // Save global post into temp variable $temp_post = $post; //Display some data, //then set up a custom query again $args = array( //Different query args ); $custom_nested_query = new WP_Query( $args ); //Nested custom query loop while ( $custom_nested_query->have_posts() ) : $custom_nested_query->the_post(); //Do stuff, then reset to $custom_query since //I still need the post before $custom_query proceeds with the loop and loads the next one endwhile; // Set the global $post back to the first custom query $post = $temp_post; //Display some more data from post queried by $custom_query before $nested_query was created endwhile; wp_reset_postdata(); endwhile; 

Oder benutze foreach($custom_nested_query->posts as $mypost) .