Quick Tip: WP_Query & mehrzeilige Felder

Mit Hilfe des Attributs meta_query in der mächtigen WordPress-Klasse WP_Query lassen sich Posts filtern, die bestimmte Werte in Ihren Meta-Feldern haben. Hat man ein mehrzeiliges Meta-Feld (z.B. mit Hilfe von Advanced Custom Fields) angelegt und will nur Posts finden, die einen bestimmten Wert in diesem durch Zeilenumbrüche getrennten Feld enthält, empfiehlt sich die REGEX-Welt von MySQL.


Folgender Aufruf findet alle Posts, die im Feld foo irgendwo in einer Zeile den Wert bar haben:

d6a80606f7846cba392a561bfdecf2b7

Hier wird sichergestellt, dass keine falschen Teilstrings gefunden werden und Zeilenumbrüche plattformübergreifend funktionieren. Wichtig auch: Der Wert des Attributs value muss zwingend in doppelten Anführungszeichen stehen, sonst escapet WordPress die Backslashes (keine Sorge: Prettier berücksichtigt das dauerhaft). Dasselbe Verfahren lässt sich auch für andere Zwecke verwenden: So ersetzt man beispielsweise im obigen Code "\r\n|\r|\n" durch ";", wenn es sich um komma- (statt zeilen-) getrennte Werte innerhalb eines Textfelds handelt.

Zurück