Das mag eine sehr grundlegende Frage sein, aber ich konnte die Antwort nicht finden. Die folgende Dokumentation http://codex.wordpress.org/Class_Reference/WP_Query zeigt den Code
// The Query $the_query = new WP_Query( $args );
Aber wenn ich wp-contents/themese/twentytwelve/index.php
sehe ich Aufrufe von have_posts()
und the_post()
innerhalb der Schleife ohne Bezug auf $the_query
als ob index.php
innerhalb einer WP_Query
Instanz enthalten wäre. Kann mir bitte jemand erklären, was hier passiert?
Vielen Dank.
Sie müssen die Dokumentation gründlich lesen, zum Beispiel:
Die zweite ist während der Schleife . WP_Query bietet zahlreiche functionen für allgemeine Aufgaben in The Loop. Zunächst wird
have_posts()
, die$wp_query->have_posts()
, aufgerufen, um zu sehen, ob$wp_query->have_posts()
werden. Wenn dies derhave_posts()
ist, wird eine While-Schleifehave_posts()
, wobeihave_posts()
als Bedingung verwendet wird. Dies wird so lange iterieren, bis Posts angezeigt werden. In jeder Iteration wirdthe_post()
, das$wp_query->the_post()
aufgerufen, wobei interne Variablen in$wp_query
und die globale$post
Variable (auf die sich die Template-Tags$wp_query
) wie oben beschrieben eingerichtet werden. Dies sind die functionen, die Sie beim Schreiben einer Motivdatei verwenden sollten, die eine Schleife benötigt. Siehe auch The Loop und The Loop in Action für weitere Informationen.
Abschnitt: WP_Query – Interaktion mit WP_Query
Und um es zu bestätigen, suchen Sie den Quellcode von have_posts()
:
739 /** 740 * Whether current WordPress query has results to loop over. 741 * 742 * @see WP_Query::have_posts() 743 * @since 1.5.0 744 * @uses $wp_query 745 * 746 * @return bool 747 */ 748 function have_posts() { 749 global $wp_query; 750 751 return $wp_query->have_posts(); 752 }
Jetzt können Sie sicher sein, dass die Hauptabfrage mit der global
Variablen $wp_query
.
Aber Sie müssen wirklich nur die Dokumentation lesen und anfangen, Code zu lesen, als dies eigentlich keine Frage wäre.