Mein Endziel ist es, 3 benutzerdefinierte Feldfilter für eine Reihe von Filtern in einer WP_Query durchzuführen. Die Schwierigkeit entsteht, weil ich beide UND/ODER-Verknüpfungen zwischen den 3 Filtern verwenden muss:
Ich versuche, dies zu lösen, indem ich den ersten Feldfilter in der ursprünglichen WP_Query durchführe, da dies den Großteil des Filters ausmacht. Dann möchte ich eine Liste von Post-IDs sammeln, die mit der Anweisung (field2 = null OR field2 = B) übereinstimmen (unter Verwendung einer zweiten WP_Query) und dann die ursprüngliche WP_Query mit der Liste von post_id's und vergleichen Streichhölzer entfernen.
der Code, den ich bisher machen muss, ist:
foreach($query['posts'] as $thepost) {
if(in_array($thepost['ID'], $new_query_results['posts'])){
unset($thepost);
}
}
Mit $ query als Haupt-WP_Query und $ new_query_results als WP_Query, die einfach ein Array von Post-IDs zurückgibt
Das Ausführen dieses Codes gibt mir den Fehler:
Fatal error: Cannot use object of type WP_Query as array in functions.php on line 190
Line 190: foreach($query['posts'] as $thepost) {
Erstens, gibt es einen besseren Weg, um mein Ziel zu erreichen? Wenn nicht, kann jemand einen Weg finden, um dieses Code-Snippet zum Laufen zu bringen?
WP_Query ist ein Objekt, kein Array. Wird benötigt, um $ query-> posts zu verwenden
Für alle Interessierten habe ich einen besseren Weg gefunden, um dieses Problem anzugehen. Durch Ausführen der zweiten Abfrage mit den Anweisungen OR und Ausgeben in ein Array von Post-IDs konnte ich die ursprüngliche Abfrage basierend auf dieser Liste filtern.