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!
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.
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.
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.
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.
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!