WordPress Meta_Query: Alles, was Sie wissen müssen
Veröffentlicht: 2022-04-30Eines der leistungsstärksten Tools in WordPress ist die Möglichkeit, benutzerdefinierte Felder zu Beiträgen hinzuzufügen. Viele Entwickler verwenden erweiterte benutzerdefinierte Felder oder benutzerdefinierte Metafelder für Beiträge.
In diesem Beitrag gehen wir darauf ein, wie Beiträge nach benutzerdefinierten Feldern mit der meta_query-Funktion in WordPress abgefragt werden. Dies ist hilfreich für Websites mit vielen benutzerdefinierten Funktionen.
Fragen Sie Beiträge nach einem Metawert ab
Die wahrscheinlich beliebteste Art, Beiträge mit einem benutzerdefinierten Feld abzufragen, ist die Ausrichtung auf einen bestimmten Metawert. Nehmen wir zum Beispiel an, wir haben eine Website, auf der Beiträge ein benutzerdefiniertes Feld haben, das verwendet wird, um festzustellen, ob ein Beitrag „empfohlen“ ist. Dies ist üblich, wenn Sie einen vorgestellten Abschnitt auf einer WordPress-Site erstellen.
Natürlich hängt der obige Code davon ab, wie Sie Ihre Felder und Metaschlüssel benennen, aber der „Schlüssel“ ist der Name des benutzerdefinierten Felds, während der „Wert“ das ist, wonach wir Beiträge abfragen. Das Feld „Vergleichen“ wird für eine Reihe von Vergleichsoperationen verwendet, auf die wir später in diesem Beitrag eingehen werden.
Wenn wir dies in WP_Query verwenden, können wir ein Array erhalten, das sich hervorragend für Schleifenfunktionen eignet, um Beiträge anzuzeigen. In diesem Beitrag gehen wir nur auf die meta_query-Funktionen ein und nicht darauf, wie die WP_Query-Ausgabe angezeigt wird.
Fragen Sie Beiträge nach mehreren Metawerten ab
Wenn Sie einen Metaschlüsselwert mit mehreren Werten vergleichen möchten, verwenden Sie am besten den Operator „IN“.
Fragen Sie Beiträge nach mehreren Metaschlüsseln ab
Nachdem wir nun Posts mit einem einzigen Metaschlüssel abgefragt haben, machen wir einen mit mehreren abgefragten Feldern/Schlüsseln. Auf diese Weise können Sie Beiträge basierend auf mehreren benutzerdefinierten Feldern abfragen. Dieses Beispiel kombiniert beide Dinge, die wir oben gemacht haben, indem wir die Abfragen in einem Array verschachteln und der meta_query eine „Beziehung“ hinzufügen.
Das Feld „Beziehung“ kann auf „UND“ oder „ODER“ gesetzt werden, sodass Sie verlangen können, dass alle Bedingungen oder nur eine erfüllt sind.

Vergleichsoperatoren für Metaabfragen
Es gibt einige Operatoren, die bei der Abfrage Ihrer Beiträge per Meta-Abfrage hilfreich sein werden. Hier ist eine kurze Aufschlüsselung der einzelnen Vergleichsoperatoren und wie Sie sie verwenden können.
- '=' Fragt Metaschlüssel ab, die einem Metawert entsprechen
- '!=' Fragt Metaschlüssel ab, die NICHT gleich einem Metawert sind
- '>' Fragt Metaschlüssel ab, die größer als der Metawert sind
- '>=' Fragt Metaschlüssel ab, die größer als & gleich dem Metawert sind
- '<' Fragt Metaschlüssel ab, die kleiner als der Metawert sind
- '<=' Fragt Metaschlüssel ab, die kleiner als & gleich dem Metawert sind
- „LIKE “ Fragt Metaschlüssel ab, die ein Wort/eine Wortgruppe enthalten (z. B. würde die Abfrage von „rot“ die Wortgruppen „Rot“, „sieht rot“ und „rotstil“ abgleichen)
- 'NICHT MÖGEN' Das Gegenteil von oben
- 'IN' Fragt Metaschlüssel ab, wo der Wert in einem Array vorhanden ist
- 'NOT IN' Fragt Metaschlüssel ab, deren Wert nicht in einem Array vorhanden ist
- 'BETWEEN' Fragt Metaschlüssel ab, bei denen der Wert zwischen zwei Zahlen liegt
- 'NOT BETWEEN' Fragt Metaschlüssel ab, bei denen der Wert nicht zwischen zwei Zahlen liegt
- 'EXISTS' Fragt Metaschlüssel ab, wo der Wert überhaupt existiert
- 'NOT EXISTS' Fragt Metaschlüssel ab, bei denen der Wert überhaupt nicht existiert
- 'REGEXP' Fragt Metaschlüssel basierend auf einem regulären Ausdruck ab
- 'NOT REGEXP' Das Gegenteil von obigem REGEXP
So sortieren Sie Beiträge nach Metafeldern
Natürlich können Sie mit WordPress Beiträge mit Ihren benutzerdefinierten Feldern sortieren, indem Sie die Option „orderby“ in WP_Query verwenden. Sie müssen „orderby“ auf „meta_value“ setzen und dann einen „meta_key“-Wert für Ihren Feldnamen festlegen. Standardmäßig ist dies am nützlichsten, wenn Ihre Abfrage alphabetisch oder nach Nummer sortiert zurückgegeben werden soll, wenn Ihr Feld eine Nummer ist.