Verbesserungen der Abfrage in den neuesten Versionen von WordPress

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:

  • Unterstützung für geschachtelte Abfragen wurde für Abfragen zu Post-Metadaten, Datumsangaben und Taxonomie-Begriffen hinzugefügt.
  • Für das Abfragen von Kommentaren wurden zusätzliche Parameter hinzugefügt.
  • Außerdem wurden einige Fehler behoben!

Schauen wir uns die Änderungen an.

Verschachtelte Abfragen

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:

  • Das äußere Array verwendet ODER, weil wir nach Beiträgen suchen, die entweder schnelle Frühstücksrezepte oder langsame Mittagsrezepte sind.
  • Das erste verschachtelte Array sucht nach Posts, die schnelle Frühstücksrezepte darstellen UND weil Sie möchten, dass der Beitrag beide Begriffe hat.
  • Das zweite verschachtelte Array sucht nach langsamen Mittagsrezepten 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.

Geschachtelte Abfragen anwenden: Taxonomie-Begriffe, Metadaten und Datumsangaben

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.

Kommentarparameter

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.

Fehlerbehebung

Es gab auch ein paar Fehlerbehebungen, die hilfreich sein könnten:

  • Ein Fehler, bei dem Abfragen fehlgeschlagen sind, wenn a date_query wurde zusammen mit einem verwendet Steuerabfrage oder meta_query wurde repariert.
  • Wann '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.

Zusammenfassung

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!