wp_reset_postdata () oder wp_reset_query () nach einer benutzerdefinierten Schleife?

Einige query_reset_postdata über query_reset_postdata und query_reset_query , verwirrt mich. Beispielsweise:

  1. Gibt es eine Notwendigkeit, beide wp_reset_postdata und wp_reset_query zusammen zu verwenden?

  2. http://www.poststat.us/properly-reset-wordpress-query/

Oben besagt, dass Sie nur query_reset_postdata() wenn Sie “separate Abfragen” verwenden. In Beispiel 2 gibt es einen Kommentar:

 WP_Query( $args ) = wp_reset_postdata(); 

UND

 query_posts ( $args ) = wp_reset_query(); 

Und wirklich sollten Sie nie wp_reset_query benutzen, weil Sie query_posts nicht benutzen sollten !?

Im WP-Codex wird angegeben, dass Sie wp_reset_query() nach einer benutzerdefinierten Schleife (erstes Beispiel) http://codex.wordpress.org/Function_Reference/wp_reset_query verwenden sollten

Ist der Codex dann falsch?

Solutions Collecting From Web of "wp_reset_postdata () oder wp_reset_query () nach einer benutzerdefinierten Schleife?"

Der Unterschied zwischen den beiden ist der

  • wp_reset_query()wp_reset_query() sicher, dass die Hauptabfrage auf die ursprüngliche Hauptabfrage zurückgesetzt wurde
  • wp_reset_postdata() – stellt sicher, dass der globale $post wp_reset_postdata() für den aktuellen Post in der Hauptabfrage wiederhergestellt wurde.

wp_reset_query() Sie sich die Quelle ansehen, sehen Sie, dass wp_reset_query() aufruft. Der einzige Unterschied zwischen den beiden ist dann diese Linie:

 $GLOBALS['wp_query'] = $GLOBALS['wp_the_query']; 

(in wp_reset_query() ). Daher ist wp_reset_query() nur dann notwendig, wenn sich diese beiden Globals unterscheiden, und dies nur dann geschieht, wenn query_posts() irgendwo verwendet wurde.

Wann sollte ich sie benutzen?

Einfach gesagt:

  • wp_reset_postdata() – unmittelbar nach jedem benutzerdefinierten WP_Query()
  • wp_reset_query() – unmittelbar nach jeder Schleife mit query_posts()

Sollte ich wp_reset_query verwenden

Nun, ja, aber es wird nur benötigt, nachdem query_posts() . Wie Sie bereits erwähnt haben, sollten Sie niemals query_posts() . Wenn Sie also nie query_posts() ist es nicht notwendig , wp_reset_query() (statt wp_reset_postdata() wp_reset_query() wp_reset_postdata() .

Kurz gesagt, es ist nicht so, dass Sie nicht wp_reset_query() anstelle von wp_reset_postdata() , sondern dass Sie das nie brauchen sollten!