Im letzten Jahr wurde viel über die Verbesserungen der WordPress-Benutzeroberfläche geschrieben: Am meisten wurde über Änderungen die verbesserte Schreiberfahrung gesprochen.
Aber wenn Sie ein Entwickler sind, möchten Sie weniger darüber und mehr darüber erfahren, was sich unter der Haube geändert hat. Hier zeige ich eine der interessantesten Änderungen für Entwickler: Verbesserungen bei bestimmten Arten von Abfragen.
Die wichtigsten Änderungen sind wie folgt:
Schauen wir uns die Änderungen an.
In früheren Versionen von WordPress konnten Sie eine UND
oder ODER
Anweisung zum Definieren von Abfragen für Taxonomiebedingungen, Datumsangaben und Metadaten. So werden beispielsweise die folgenden Argumente in einer Abfrage auf einer Rezeptseite verwendet, die schnelle Frühstücksrezepte ausgibt:
'post', 'tax_query' => array ('relation' => 'AND', array ('taxonomy' => speed ',' field '=>' slug ',' terms '=> array (' quick ' )), array ('taxonomy' => 'meal', 'field' => 'slug', 'terms' => array ('breakfast'))))); $ query = new WP_Query ($ args); ?>
Das sucht nach dem 'Geschwindigkeit'
und 'Mahlzeit'
Taxonomien und Ausgabeposten bei der 'schnell'
und 'Frühstück'
Begriffe.
Aber was wäre, wenn Sie eine komplexere Abfrage schreiben wollten? Nehmen wir an, Sie wollten schnelle Rezepte für das Frühstück und langsame Rezepte für das Mittagessen (vielleicht für jemanden, der das Frühstück schnell erledigen möchte, damit er mehr Zeit zum Mittagessen hat!). Sie möchten kein einfaches verwenden UND
Anweisung, um alle Elemente Ihrer Abfrage zu verbinden, da Sie dann langsame Rezepte zum Frühstück erhalten würden und zum Beispiel Mittagessen. Und du willst keine verwenden ODER
Eine Anweisung, die alle Begriffe miteinander verknüpft, da Sie alle Arten von Rezepten erhalten, die nur einen der abgefragten Begriffe enthalten, zusammen mit anderen, die Sie herausfiltern möchten.
Die gute Nachricht ist, dass Sie dies jetzt tun können. Um schnelle Rezepte für das Frühstück und langsame Rezepte für das Mittagessen abzufragen, verwenden Sie Folgendes:
array ('relation' => 'OR', array ('relation' => 'AND', array ('taxonomy' => 'Mahlzeit', 'field' => 'slug', 'terms' => array (' Frühstück ')), array (' taxonomy '=>' speed ',' field '=>' slug ',' terms '=> array (' quick '))), array (' relation '=>' AND ', array ('taxonomy' => 'meal', 'field' => 'slug', 'terms' => array ('lunch')), array ('taxonomy' => 'speed', 'field' => ' slug ',' terms '=> array (' slow ')))))); $ query = new WP_Query ($ args); ?>
Hier habe ich zwei verschachtelte Arrays verwendet:
ODER
, weil wir nach Beiträgen suchen, die entweder schnelle Frühstücksrezepte oder langsame Mittagsrezepte sind.UND
weil Sie möchten, dass der Beitrag beide Begriffe hat.UND
.Natürlich können Sie Ihre Abfragen so variieren, dass sie mehrere Begriffe und Werte für die Taxonomie enthalten und so komplex sind, wie Sie es benötigen.
Das Beispiel, das ich oben gegeben habe, verwendet Taxonomie-Begriffe, aber diese Funktion wurde auch zu Datums- und Metadatenabfragen hinzugefügt. Metadaten können potenziell interessant werden, da Sie über so viele Werte verfügen.
Die Syntax funktioniert für Datums- und Metadatenabfragen genauso. Für Metaabfragen ersetzen Sie Steuerabfrage
mit meta_query
und verwenden 'Schlüssel'
und 'Wert'
als Parameter. Für Datumsabfragen ersetzen Sie Steuerabfrage
mit date_query
und verwenden Sie die im WordPress-Codex enthaltenen Datumsparameter.
Um Kommentare abzufragen, verwenden Sie die WP_Comment_Query
Klasse anstelle der am häufigsten verwendeten WP_Query
Klasse. Dieser Klasse wurden acht neue Parameter hinzugefügt:
'author__in'
: Kommentarautor identifizieren (oder ein Array von Autoren)"author__not_in"
: Identifizieren Sie Kommentare, die nicht von einem bestimmten Autor (oder Autorenfeld) stammen."post_author__in"
: Geben Sie den Autor (oder das Array von Autoren) des Beitrags an, für den der Kommentar verfasst wurde'post_author__not_in'
: Kommentare ausschließen, die zu Beiträgen von bestimmten Autoren oder Autorengruppen verfasst wurden'comment__in'
: Kommentare mit einer bestimmten ID oder einem Array von IDs'comment__not_in'
: Kommentare mit einer bestimmten ID oder einem Array von IDs ausschließen'post__in'
: Kommentare zu einem Beitrag oder einem Array von Beiträgen (unter Verwendung der Beitrags-ID)'post__not_in'
: Kommentare ausschließen, die für einen Beitrag oder ein Array von Beiträgen gemacht wurden (unter Verwendung der Beitrags-ID)Die für diese Werte verwendeten Werte sind die Autoren-ID, die Kommentar-ID oder die Beitrags-ID.
Notiere dass der WP_Comment_Query
Klasse unterstützt jetzt auch geschachtelte Abfragen.
Es gab auch ein paar Fehlerbehebungen, die hilfreich sein könnten:
date_query
wurde zusammen mit einem verwendet Steuerabfrage
oder meta_query
wurde repariert.'orderby' => 'meta_value'
wurde beim Übergeben eines verwendet 'meta_query'
mit dem ODER
Beziehung in WP_Query
, Dies brach die Abfrage ab. Dies wurde behoben.Wenn Sie alle Details kennenlernen möchten, finden Sie diese auf der WordPress-Kernseite.
Diese Verbesserungen an Abfragen führen WordPress einen Schritt weiter zur vollen CMS-Funktion. Durch die Verwendung geschachtelter Abfragen können Sie Inhalte viel flexibler und komplexer ausgeben. Es wird interessant sein zu sehen, wie die Leute sie benutzen!