kulturbanause Blog

Responsive Design, WordPress, Konzeption, HTML, CSS, JS & UX/UI …

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.

Workshops und Seminare von kulturbanause

Visual Prototyping, Responsive Design, CSS Grid & Flexbox, WordPress, Adobe XD, HTML & CSS Grundlagen, Website-Optimierung …

Jetzt Frühbucher-Rabatte sichern!

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.

Jetzt bist du gefragt!

Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Du kannst diesen Beitrag natürlich auch weiterempfehlen. Wir sind dir für jede Unterstützung dankbar!

Unterstützung bei WordPress-Projekten

Unsere WordPress Agentur ist auf die Entwicklung maßgeschneiderter WordPress-Themes und -Websites spezialisiert. Wenn du Unterstützung bei der Planung, Gestaltung und Entwicklung eines Projekts benötigst, helfen wir gerne weiter.
WordPress-Leistungsangebot →

Das könnte dich auch interessieren

Kommentar verfassen

Dieser Blog lebt vom Feedback der Besucher! Also los, mach mit!
Bitte habe Verständnis dafür, dass Kommentare die mit dem Inhalt dieses Beitrags nichts zu tun haben, gelöscht werden.