WordPress: Loops mit WP_Query

Der Loop ist das zentrale Herzstück von WordPress und sorgt dafür, dass die Inhalte einer Website oder eines Blogs an der passenden Stelle angezeigt werden. Bei anspruchsvolleren Projekten stößt der Standard-Loop von WordPress allerdings schnell an seine Grenzen, weshalb es noch einige andere Möglichkeiten gibt um Inhalte und Beiträge auszugeben. Neben pre_get_posts, get_posts und query_posts ist ein Loop mit Hilfe von WP-Query eine sehr mächtige und daher populäre Alternative.

Vorteile des WP_Query gegenüber dem Standard-Loop

Der Standard-Loop von WordPress zeigt immer die Beiträge/Inhalte, die entsprechend der Template-Hierarchie angezeigt werden sollen. WordPress erkennt automatisch anhand der URL-Struktur welche Inhalte das sind. Befindet sich ein Besucher beispielsweise auf der Blog-Übersicht, wird folglich eine Übersicht der Blog-Beiträge angezeigt, befindet er sich in der Detailansicht einer statischen Seite, sieht man erwartungsgemäß die Inhalte dieser Seite usw.

Der Standard-Loop stößt an seine Grenzen, wenn man als Theme-Entwickler Inhalte an einer Stelle anzeigen möchte, an der sie entsprechend der Template-Hierarchie eigtl. nicht angezeigt werden dürften. Wenn ihr also beispielsweise auf einer statischen Unterseite zusätzlich zum Inhalt dieser Seite auch die neuesten drei Blog-Posts anzeigen möchtet, benötigt ihr einen zusätzlichen Loop, der dazu in der Lage ist. WP-Query ist ein solcher Loop.

WordPress-Loop mit WP_Query erstellen

Mit dem nachfolgenden Code zeigt ihr Inhalte in WordPress mit Hilfe von WP_Query an. Welche Inhalte das sind, konfiguriert ihr über den vorgelagerten Array ($args). Dabei stehen zahlreiche Werte zur Verfügung.

Wichtig ist, dass der WP_Query-Loop am Ende resettet wird, da es ansonsten zu Fehlfunktionen kommen kann, wenn mehrere Loops auf einer Seite angezeigt werden.

<?php 
$args = array( 
 /* Hier wird definiert welche Beiträge geladen werden sollen */ 
);
 
$custom_query = new WP_Query($args); 
if ($custom_query->have_posts()) : while($custom_query->have_posts()) : $custom_query->the_post(); ?> 

<!-- Start der geloopten Inhalte -->
 <h1><?php the_title(); ?></h1> 
 <?php the_content();?> 
<!-- Ende der geloopten Inhalte -->

<?php endwhile; else : ?>
  <p>Keine Beiträge</p>
<?php endif; wp_reset_postdata(); ?>

Argumente des WP_Query

Wie oben beschrieben kann mit Argumenten festgelegt werden, welche Beiträge angezeigt werden sollen. Im WordPress-Codex werden alle Optionen zusammengefasst. Der folgende Code lädt 5 Beiträge des Post Types »Termine« in alphabetischer, absteigender Reihenfolge.

$args = array(
 'post_type' => 'termine',
 'posts_per_page' => 5,
 'orderby' => 'title',
 'order' => 'ASC'
);

Vollständiges Beispiel

Das voll funktionsfähige Beispiel sieht dann so aus:

<?php 

$args = array(
 'post_type' => 'termine',
 'posts_per_page' => 5,
 'orderby' => 'title',
 'order' => 'ASC'
);

$custom_query = new WP_Query($args); 

if ($custom_query->have_posts()) : while($custom_query->have_posts()) : $custom_query->the_post(); ?> 
  <h1><?php the_title(); ?></h1> 
  <?php the_content();?>
<?php endwhile; else : ?> 
  <p>Keine Beiträge</p>
<?php endif; wp_reset_postdata(); ?>

Bitte beachtet, dass ihr beim Einsatz einer Pagination ggf. eine Anpassung am Loop vornehmen müsst. Weitere Informationen findet ihr hier.

Geschrieben von Jonas

Benutzerbild

Jonas ist Gründer der Agentur kulturbanause und des kulturbanause Blogs. Er arbeitet an der Schnittstelle zwischen UX/UI Design, Frontend und Redaktion und hat zahlreiche Fachbücher und Video-Trainings veröffentlicht. Jonas Hellwig ist regelmäßig als Sprecher auf Fachveranstaltungen anzutreffen und unterstützt mit Seminaren und Workshops Agenturen und Unternehmen bei der Planung, der Gestaltung und der technischen Umsetzung von Web-Projekten.

Jonas Hellwig bei Xing

Feedback & Ergänzungen – Schreibe einen Kommentar

Kommentar zu dieser Seite

Wir freuen uns über Anregungen, Ergänzungen oder Hinweise zu Fehlern. Wir lesen jeden Eintrag, veröffentlichen aber nur, was den Inhalt sinnvoll ergänzt.

WordPress-Projekte mit kulturbanause

Wir wissen wovon wir reden. Wir setzen WordPress seit über 10 Jahren erfolgreich ein und realisieren maßgeschneiderte Websites auf Basis dieses großartigen CMS.

WordPress-Leistungsangebot →

Schulungen von kulturbanause

Wir bieten Seminare und Workshops zu den Themen Konzept, Design und Development. Immer up-to-date, praxisnah, kurzweilig und mit dem notwendigen Blick über den Tellerrand.

Übersicht Schulungsthemen →