Coding | PHP | WordPress

WordPress: Wie man einen Loop zurücksetzt

wool 1142177 1920

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;

weiter schmökern

Schreibe einen Kommentar

Bitte Kommentarfunktion nicht für Supportanfragen nutzen. Dem kann hier nicht entsprochen werden.

Deine E-Mail-Adresse wird nicht veröffentlicht.