Was ist der WordPress-Loop?
Der WordPress-Loop ist der zentrale PHP-Code-Block, mit dem WordPress Beiträge, Seiten und sonstige Inhalte aus der Datenbank abruft und auf der Website ausgibt. Der Name beschreibt genau, was passiert: WordPress durchläuft in einer Schleife alle Einträge, die zur aktuellen Abfrage passen, und zeigt jeden einzelnen nach dem vorgegebenen Template an. Ohne den Loop würde auf keiner WordPress-Seite ein Inhalt erscheinen. Die offizielle Dokumentation findet sich unter developer.wordpress.org/themes/basics/the-loop/.
Was bedeutet das für Ihre Website?
In der Praxis begegnet Ihnen der Loop in nahezu jeder Theme-Vorlage. Ein einfacher Loop sieht so aus: WordPress prüft mit have_posts(), ob Beiträge vorhanden sind. Solange das der Fall ist, springt die Schleife zum nächsten Beitrag mit the_post() und gibt Inhalt wie Titel (the_title()), Text (the_content()) oder Datum (the_date()) aus. Sobald keine weiteren Beiträge mehr vorhanden sind, endet die Schleife.
Was genau der Loop ausgibt, bestimmt die zugrundeliegende Abfrage. Auf einer Kategorie-Archivseite listet der Loop alle Beiträge dieser Kategorie. Auf der Startseite gibt er die neuesten Veröffentlichungen aus. Auf einer Einzelbeitragsseite enthält er genau einen Eintrag. Sie können den Loop aber auch mit einer eigenen WP_Query-Instanz verknüpfen, um gezielt bestimmte Inhalte einzubinden, zum Beispiel die letzten drei Beiträge einer bestimmten Kategorie in einer Seitenleiste.
Für Ihre Website-Verwaltung ist dieses Wissen dann relevant, wenn Sie mit einem Entwickler zusammenarbeiten oder eigene Templates einsetzen. Wenn ein bestimmtes Beitragslayout auf einer Seite nicht wie erwartet erscheint, liegt die Ursache oft darin, dass das Template den falschen Loop verwendet oder die zugehörige Abfrage falsch konfiguriert ist. Auch Performance-Probleme können entstehen, wenn ein Loop versehentlich alle verfügbaren Beiträge ohne Limit lädt.
Tipp
Wenn Sie einen zusätzlichen Loop auf einer Seite einbetten, zum Beispiel um verwandte Beiträge anzuzeigen, sollten Sie danach stets wp_reset_postdata() aufrufen. Andernfalls bleibt der globale $post-Zustand verändert, was in nachfolgenden Template-Teilen zu falschen Ausgaben führen kann. Dieser Fehler ist schwer zu diagnostizieren, weil er nicht sofort sichtbar ist, sondern erst später im Seitenaufbau auftritt.
Verwandte Begriffe
Template • PHP • Datenbank • Kategorie und Tag • Seite