Der ganz normale Loop (erfordert keine Maßnahme wenn er durchlaufen ist)
// WordPress Query
while ( have_posts() ) :
the_post();
// verwende Funktionen wie the_title() und the_content() in diesem Bereich
endwhile;
wp_reset_postdata()
Ein zweiter Loop durch ein benutzerdefiniertes Query
$custom_query = new WP_Query($args);
while ( $custom_query->have_posts() )
$custom_query->the_post();
// verwende Funktionen wie the_title() und the_content() in diesem Bereich
endwhile;
// stelle die Globals wieder her.
wp_reset_postdata();
wp_reset_query()
Den WordPress Loop überschreiben
query_posts($args);
while( have_posts() ) :
the_post();
// verwende Funktionen wie the_title() und the_content() in diesem Bereich
endwhile;
// stelle die Referenzierung von $wp_query auf $wp_the_query und die Globals wieder her
wp_reset_query();
query_posts()
bedeutet, es werden zwei Queries ausgeführt, jener von WordPress und der „neue“. Da der von WordPress durch query_posts()
zerstört wird (Referenzierung und Globals), muss er am Ende mit wp_reset_query()
wieder hergestellt werden.
Ohne diese Maßnahme wird es Dir Deine Datenwiedergabe aufmischen (Widgets, Seitenleiste…). Es wird weitgehend davon abgeraten, query_posts()
zu verwenden, sondern mit WP_Query()
zu arbeiten.
rewind_posts()
Einen Loop mehrfach durchlaufen
// erster Durchlauf
while (have_posts()) : the_post();
the_title();
endwhile;
// nochmal von vorne anfangen
rewind_posts();
// zweiter Durchlauf
while (have_posts()) : the_post();
the_content();
endwhile;
Schreibe einen Kommentar