Führen Sie Abfragen in WordPress mit WP_Query durch
Veröffentlicht: 2023-02-12Die Datenbank, die Ihre WordPress-Website speist, ist voller wertvoller Informationen. Dadurch ist es möglich, Ihre Beiträge und Seiten nach vielen verschiedenen Variablen zu filtern. Wenn das, was Sie anzeigen möchten, nicht Teil Ihres Themas ist, gibt es jedoch andere Möglichkeiten, diese Daten zu verwenden.
Hier kommt WP_Query ins Spiel. Dies ist eine PHP-Klasse, die eine Vielzahl von Parametern verwendet. Folglich können Sie Daten aus der WordPress-Datenbank abrufen, um sie auf Ihrer Website zu verwenden oder anzuzeigen.
In diesem Artikel vermitteln wir ein tieferes Verständnis der WP_Query-Klasse und wie sie verwendet werden kann. Wir führen Sie auch durch einige wichtige Schritte, die Sie bei der Verwendung befolgen müssen. Wenn Sie bereit sind, tauchen wir gleich ein!
Was ist WP_Query?
Wie bereits erwähnt, ist WP_Query eine PHP-Klasse, die von der WordPress-Datenbank verwendet wird. Diese bestimmte Klasse kann mehrere Dinge tun, aber hauptsächlich wird sie verwendet, um Beiträge aus der Datenbank abzurufen.
Wie der Name schon sagt, erstellt es eine Abfrage basierend auf den Kriterien, die Sie dafür festgelegt haben. Da es viele Parameter gibt, die Sie mit WP_Query in WordPress verwenden können, können Sie Beiträge auf verschiedene Weise abrufen und anzeigen. Wir werden diese Optionen später in diesem Beitrag genauer untersuchen.
So verwenden Sie WP_Query
Auch wenn Sie gerade erst die verschiedenen Aspekte der WordPress-Codebasis lernen, ist WP_Query eine gute Klasse für den Einstieg. Lassen Sie uns nun vier verschiedene Möglichkeiten aufschlüsseln, wie Sie es auf Ihrer Website verwenden können.
1. Beginnen Sie mit einer benutzerdefinierten Schleife
Eine der besten Möglichkeiten, den WP_Query-Aufruf kennenzulernen, ist die WordPress-Schleife. Wenn Sie nicht wissen, was der Loop ist, sollten Sie sich über dieses wichtige Konzept informieren.
Die Schleife ruft die Datenbank auf, fragt nach Post-Inhalten und zeigt die zurückgegebenen Daten an. Es funktioniert auch basierend auf festgelegten Parametern, z. B. wie viele Beiträge Ihre Website auf einer einzigen Seite anzeigen soll (etwas, das Sie in Ihrem Menü Einstellungen > Lesen konfigurieren können).
Die Grundlagen des Loops sehen so aus:
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
// Display post content
endwhile;
endif;
?>
Diese einfache Aussage besagt im Wesentlichen, dass, wenn es Beiträge gibt, diese angezeigt werden sollten. Natürlich können Sie dieser Grundlage eine Vielzahl von Vorlagen-Tags hinzufügen, um die gewünschte Anzeige zu erstellen.
Sie können auch WP_Query in die Schleife einfügen. Auf diese Weise können Sie festlegen, welche Beiträge zurückgegeben werden. Lassen Sie uns aufschlüsseln, wie das aussehen würde:
<?php
// The Query
$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ) {
echo '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<li>' . get_the_title() . '</li>';
}
echo '</ul>';
} else {
// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
Sie sehen dieselben if/while -Anweisungen aus der grundlegenden Schleife, aber es gibt eine zusätzliche WP_Query-Zeichenfolge. Welche Parameter hier eingestellt werden, bestimmt, welche Beiträge angezeigt werden.

Wenn Sie beispielsweise einen bestimmten Autor aus einer Liste von Beiträgen ausschließen möchten, können Sie dies in the Loop mit WP_Query tun:
$query = new WP_Query( array( 'author' => -12 ) );
Durch die Platzierung in der Schleife würden Ihre angezeigten Beiträge den Benutzer mit der Autorennummer „12“ nicht mehr enthalten.
Die Anzahl der Parameter, die Sie mit dieser Methode verwenden können, ist nahezu endlos. Sie können Kategorieinformationen sowie erweiterte Taxonomien einfügen, um nur zwei Beispiele zu nennen.
2. Argumente: Das Rückgrat benutzerdefinierter Abfragen in WordPress
Im vorherigen Beispiel ist Ihnen vielleicht „($args)“ als Teil der Zeichenfolge aufgefallen. Dies ist ein wichtiger Teil der Abfrage, der sich auf die enthaltenen „Argumente“ bezieht. Es teilt der Datenbank genau mit, was in den zurückgegebenen Daten enthalten sein soll.
Im Wesentlichen können diese Argumente eingerichtet werden, um die genauen Ergebnisse zu bestimmen, die Sie anzeigen möchten. Argumente können auch verwendet werden, um den Wert von Variablen zu ändern. Wenn Sie beispielsweise ändern möchten, wie Ihre Kategorienliste auf der Seite angezeigt wird, können Sie ein Argument verwenden.
Ihr Argument definiert ein Array von Variablen und Werten. Wenn Sie möchten, können Sie also ein Argument verwenden, um ein Array zu definieren, und Ihrer Datenbank mitteilen, dass sie die Kategorien in absteigender Reihenfolge anzeigen soll. Darüber hinaus können Sie dieselbe Methode verwenden, um alle Kategorien auszuschließen, die keine Beiträge enthalten.
3. Parameter in WP_Query: Kategorie, Tag und mehr
Bisher haben wir Parameter nur am Rande erwähnt. Schauen wir uns an dieser Stelle genauer an, was sie tatsächlich tun können. Ihre Hauptfunktion besteht darin, es Ihnen zu ermöglichen, benutzerdefinierte Sammlungen von Posts abzurufen.
Ein Beispiel für einen Parameter, der im Header Ihrer Website verwendet werden kann, ist der Category-Parameter. Sie können dies verwenden, um bestimmte Kategorien für die Anzeige festzulegen. Dies geschieht durch Angabe der entsprechenden Kategorienummer oder des Slugs.
Darüber hinaus können Sie dasselbe mit dem Tag-Parameter tun. Natürlich sind die Category- und Tag-Parameter nur die Spitze des Eisbergs, wenn es um die Verwendung von WP_Query geht.
4. Modifizieren Sie Objekte mit Methoden und Eigenschaften
Es wird zwar nicht empfohlen, die Eigenschaften einer Klasse wie WP_Query direkt zu ändern, aber Sie können mit ihnen mithilfe von Methoden interagieren. Im Wesentlichen sind Methoden wie Funktionen, während Eigenschaften das Äquivalent von Variablen sind.
WP_Query hat viele Eigenschaften. Diese reichen von einfachen „$posts“-Eigenschaften bis hin zu komplizierteren. Welche Methode auch immer verwendet wird, um mit ihnen zu interagieren, die Daten werden basierend auf den von Ihnen gewählten Parametern zurückgegeben.
WP_Query vs. query_posts() in WordPress
Es ist erwähnenswert, dass es eine andere Möglichkeit gibt, die Hauptabfrage auf Ihrer Seite zu ändern. Dies ist die Funktion query_posts(). Dies kann zwar ähnlich wie WP_Query funktionieren, kann aber auch sehr problematisch sein.
Die WordPress-Code-Referenz rät sogar dringend davon ab, diese Funktion innerhalb der Hauptschleife Ihrer Website zu verwenden. Es ist auch am besten, es in Plugins und Themes zu vermeiden. Dies liegt daran, dass Ihre Hauptabfrage vollständig überschrieben wird.
Die WP_Query-Klasse wird bevorzugt, da Sie die Hauptschleife auch „zurücksetzen“ können, nachdem Sie eine Abfrage ausgeführt haben. Da Sie mit WP_Query mehrere Abfragen in einer Schleife ausführen können, sollten Sie auch verstehen, wie die Funktion wp_reset_postdata implementiert wird.
Wenn Sie eine sekundäre Schleife in die WordPress-Hauptschleife eingebettet haben, wird die Reset-Funktion am Ende platziert und sieht folgendermaßen aus:
<?php wp_reset_postdata(); ?>
Dadurch werden die Standard-Template-Tags wiederhergestellt, und Sie werden wieder so sein, wie die Dinge waren, bevor Ihre sekundäre Schleife initiiert wurde.
Passen Sie Ihre WordPress-Site mit WP Engine an
Die Möglichkeit, Anpassungen an der Anzeige von Artikeln auf Ihrer Website vorzunehmen, ist nur einer der Vorteile der Verwendung von WordPress. Das Verständnis von WP_Query und die Nutzung der auf der Seite mit den Entwicklerressourcen bereitgestellten Tools können Ihnen dabei helfen, wirklich maßgeschneiderte Websites zu erstellen.
Hier bei WP Engine setzen wir uns leidenschaftlich dafür ein, dass Sie über die Ressourcen verfügen, die Sie zum Erstellen ansprechender Websites benötigen. Sehen Sie sich noch heute unsere WordPress-Lösungen und Hosting-Pläne an!