WP_Meta_Query & WP_Date_Query beherrschen

Willkommen im letzten Teil der Serie - technisch ist der letzte Teil "Series Finale", aber Sie haben die Idee. In diesem Teil lernen Sie zwei Geschwisterklassen kennen WP_Meta_Query und WP_Date_Query.

Lass uns ohne weiteres anfangen!

Arbeiten mit allen Arten von Metadaten über die Klasse WP_Meta_Query

Das WP_Meta_Query Klasse ist eine "Helferklasse", die hilft WP_Query Abfragen mit Metadaten machen.

Wie Sie wissen, speichert WordPress drei Arten von Metadaten in der Datenbank: Post-Meta, Benutzermeta und Kommentar-Meta. In den vorherigen Tutorials haben wir gesehen, dass wir Meta-Abfragen innerhalb der Abfragen ausführen können, die wir mit dem ausführen WP_Query, WP_User_Query und WP_Comment_Query Klassen (mit der 'meta_query' Parameter). Das WP_Meta_Query wird tatsächlich ausgeführt, wenn Sie diese Abfragen ausführen.

Es stellt sich heraus, dass Sie die SQLs für diese metabezogenen Abfragen mit Hilfe von erhalten können WP_Meta_Query Klasse. Diese Klasse erhält nicht wirklich die Ergebnisse der angegebenen Abfrage, sondern bereitet stattdessen die SQL-Befehle vor, die Sie an anderer Stelle verwenden können.

Beispiel Verwendung der Klasse WP_Meta_Query

Wir können nicht sagen, dass es ein Tutorial ist, wenn wir kein Beispiel machen, richtig? An einem einfachen Beispiel werden wir sehen, wie wir das nutzen können WP_Meta_Query Klasse im wirklichen Leben. (Zugegeben, es ist eine sehr spezifische Sache, den SQL-Code für eine metabezogene Abfrage zu erhalten, aber ich werde versuchen, ein Beispiel aus der Praxis zu finden.

Stellen Sie sich vor, Sie möchten ein spezielles Plugin für "Verwandte Posts" für Ihre eigene Website erstellen, in dem Sie Posts mit demselben Meta-Wert für einen Meta-Key auflisten-oder ein weiterer Metawert für einen anderen Metaschlüssel. Und anstatt eine Meta-Abfrage innerhalb eines WP_Query So möchten Sie den SQL-Code der Abfrage abrufen, um ihn dynamisch in separaten Codeblöcken zu verwenden. Hier sind die Schritte zum Vorbereiten dieses SQL-Codes:

 'ODER', Array ('meta_key' => 'Some_Key', 'Meta_value' => 'Some_Value', 'compare' => '=')), Array ('Meta_key' => 'Some_Other_Key', 'Meta_value' => 'Some_Other_Value', 'compare' => '=')); $ my_meta_query = new WP_Meta_Query; $ my_meta_query-> parse_query_vars ($ my_meta_query_args); $ my_meta_query_sql = $ my_meta_query-> get_sql ('post', $ wpdb-> posts, 'ID'); ?>

Da gehst du hin: die $ my_meta_sql Variable speichert den SQL-Code für Ihre spezielle Abfrage, und Sie können diesen SQL-Code an beliebiger Stelle in Ihrem Projekt verwenden.

Abfragen von Datumsabfragen mit der Klasse WP_Date_Query

So wie WP_Meta_Query, das WP_Date_Query ist eine Hilfsklasse für die WP_Query, WP_User_Query und WP_Comment_Query Klassen. Diese Hilfsklasse wurde in WordPress Version 3.7 eingeführt. Damals unterstützte die Klasse nicht WP_User_Query, seit der Version 4.1 können Sie jedoch die Benutzertabelle (die user_registered Spalte spezifisch).

Ähnlich zu WP_Meta_Query und seine Fähigkeit, Metaschlüssel und Werte abzufragen, die WP_Date_Query Mit class können wir Datumsfelder in den Tabellen "Posts", "Comments" und "Users" abfragen. Und genau so WP_Meta_Query, Mit dieser Hilfsklasse können Sie auch den vorbereiteten SQL-Code zurückgeben, um eine datumsbezogene Abfrage auszuführen.

Beispiel Verwendung der WP_Date_Query-Klasse

Um vollständig zu verstehen, wie die WP_Date_Query Klasse arbeitet, gehen wir ein Beispiel durch. Es wird ein weiteres unnötig spezifisches Beispiel sein, aber es wäre nicht richtig, diesen Teil ohne Beispiel zu verlassen.

Stellen wir uns vor, dass wir aus irgendeinem Grund nach Kommentaren fragen müssen, die im aktuellen Monat und vor Mittag abgegeben werden. (Bitte Schießen Sie mir einen Kommentar, wenn Sie einen guten Fall für das Abrufen von Kommentaren finden, die im aktuellen Monat und vor Mittag abgegeben wurden!) So erhalten Sie den SQL-Code für diese bizarre Abfrage:

 Datum ('n'),), Array ('vor' => 'Mittag'), 'Relation' => 'AND'); $ my_date_query = new WP_Date_Query ($ my_date_query_args, 'comment_date'); $ my_date_query_sql = $ my_date_query-> get_sql (); ?>

Da gehst du hin. Beachten Sie, dass Sie relative Datumsformate von PHP verwenden können, die wirklich nützlich sind.

Schneller Tipp: Christian Bruckner hat einen großartiger Beitrag auf MarketPress.com wie WP_Date_Query funktioniert. Es ist etwas veraltet (weil es geschrieben wurde, bevor WordPress 4.1 veröffentlicht wurde), aber es ist sehr gut geschrieben und immer noch eine gute Lektüre. Achten Sie darauf, es auszuprobieren.

Alles einpacken

Mit diesen beiden Helferklassen beenden wir die lange Reise des Sezierens der WP_Query Klasse. Dies war eine der längsten Tutorialserien in der Geschichte von Tuts +, also vielen Dank, dass Sie bis zum Ende mit uns getragen haben! Im nächsten (und letzten) Teil werden wir wiederholen, was wir zum letzten Mal durchgemacht haben, und die Serie beenden.

Haben Sie etwas zu diesem Artikel hinzuzufügen? Zögern Sie nicht, Ihre Meinung im Kommentarabschnitt unten mitzuteilen. Und wenn Ihnen der Artikel gefallen hat, vergessen Sie nicht, ihn mit Ihren Freunden zu teilen!