Beraten Sie Vorlagen für benutzerdefinierte Abfragen

Ich versuche herauszufinden, wie ich dieses Problem am besten lösen kann. Ich habe einige Seiten des Archivtyps, die Inhalte von mehreren Beitragstypen gleichzeitig anzeigen. Zum Beispiel habe ich das Standardsuchverhalten von WordPress mit meiner eigenen Suchfunktion außer Kraft gesetzt. Da die core-WordPress-Suche nicht verwendet wird, ist die globale Variable $wp_query leer und die Standard-Schleifenfunktionen ( have_posts() , the_post() usw.) funktionieren nicht.

Meine Suchklasse erzeugt Ergebnisse, die nach Relevanz geordnet und nach Posttyp gruppiert sind. Die Ergebnisse sehen so aus:

 $results = array( 'page' => array( 'post_id' => {WP_Post object}, 'post_id' => {WP_Post object}, 'post_id' => {WP_Post object} ), 'post' => array( 'post_id' => {WP_Post object}, 'post_id' => {WP_Post object} ), 'custom_post_type' => array( 'post_id' => {WP_Post object}, 'post_id' => {WP_Post object} ) ); 

Was ich jetzt mache, um diese auszugeben, ist ziemlich abscheulich. Ich durchlaufe jeden Post-Typ und gebe einen

dafür aus. Dann führe ich in der Vorlage für die Post-Typ-Abschnitte die folgende Schleife aus, um die einzelnen Posts auszugeben:

 foreach ( $my_posts as $my_post ) { $GLOBALS['post'] = $my_post; setup_postdata( $my_post ); get_template_part( 'content-multi', $post_type ); } 

Das Problem ist, dass ich möchte, dass die Vorlageteile in WordPress-Standardschleifen und in Situationen (wie der Suchseite) verwendbar sind, in denen ich die Standard-WordPress-Abfrage überschreibe. Daher die Hacks mit den globalen Variablen und der setup_postdata() . Kann jemand einen besseren Weg empfehlen, dieses Ziel zu erreichen?

UPDATE: So wie es scheint, ist die Art, wie ich die benutzerdefinierte Schleife konstruiere, gar nicht so schlecht. Ich versuche immer noch, die Feeds für diese Seiten herauszufinden. RSS ist ziemlich neu für mich. Kann mir jemand Hinweise geben, wie man diese Feeds generiert?

Solutions Collecting From Web of "Beraten Sie Vorlagen für benutzerdefinierte Abfragen"