Warum werden bei der Suche nach Posts meine Seiten durcheinander gebracht?

Ich arbeite gerade an einem Thema und habe eine Postvorlage eingerichtet.

Diese Postvorlage ist mit einigen benutzerdefinierten Post-Typen verknüpft.

Wenn ich query_posts für meinen Post-Typ auf der eigentlichen post-Vorlage selbst mache, macht es den Inhalt aus irgendeinem Grund verschwinden? Gibt es etwas, das mir hier fehlt?

Danke, Mark

Meine Schleife ist wie folgt:

have_posts()) { while ($queryObject->have_posts()) { $queryObject->the_post(); the_title(); the_content(); } } ?> 

Solutions Collecting From Web of "Warum werden bei der Suche nach Posts meine Seiten durcheinander gebracht?"

Verwenden Sie wp_reset_query nach Ihrer Schleife, um die globalen wp_reset_query für die Hauptschleife wiederherzustellen.

Der Vollständigkeit halber ist die Verwendung von wp_reset_query() nicht unbedingt falsch, aber es ist eine unnötige zusätzliche Operation, wenn sie nach einer sekundären Abfrage mit einer neuen Instanz der WP_Query class ausgeführt wird. Das $wp_query Objekt wird nicht geändert, daher muss es nicht zurückgesetzt werden. Nur das $post global erfordert einen Reset. Daher wäre wp_reset_postdata() in diesem Fall ausreichend.

Siehe /wp-includes/query.php zur Referenz:

 /** * Destroy the previous query and set up a new query. * * This should be used after {@link query_posts()} and before another {@link * query_posts()}. This will remove obscure bugs that occur when the previous * wp_query object is not destroyed properly before another is set up. * * @since 2.3.0 * @uses $wp_query */ function wp_reset_query() { unset($GLOBALS['wp_query']); $GLOBALS['wp_query'] = $GLOBALS['wp_the_query']; wp_reset_postdata(); } /** * After looping through a separate query, this function restores * the $post global to the current post in the main query * * @since 3.0.0 * @uses $wp_query */ function wp_reset_postdata() { global $wp_query; if ( !empty($wp_query->post) ) { $GLOBALS['post'] = $wp_query->post; setup_postdata($wp_query->post); } }