WordPress: Wie man einen Loop zurücksetzt

wool 1142177 1920
Bildquelle: Pixabay, SilviaStoedter

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;

Bitte Kommentarfunktion nicht für Supportanfragen nutzen. Dem kann hier nicht entsprochen werden. Die Angabe einer E-Mail-Adresse und eines Namens ist nicht erforderlich. Einen (Spitz)-Namen zu nennen wäre aber doch nett.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Hinweis: Sowohl angegebener Name als auch E-Mail-Adresse (beides ist optional, dafür werden alle Kommentare vor Veröffentlichung geprüft) werden dauerhaft gespeichert. Du kannst jeder Zeit die Löschung Deiner Daten oder / und Kommentare einfordern, direkt über dieses Formular (wird nicht veröffentlicht, und im Anschluss gelöscht), und ich werde das umgehend erledigen. – Mit hinterlassenen Kommentaren hinterlegte IP-Adressen werden nach zwei Monaten automatisch gelöscht

publicly queryable