Mon objectif final est d’effectuer 3 filtres de champ personnalisés sur un ensemble de filtres sur un WP_Query. La difficulté vient du fait que je dois utiliser les relations ET/OU entre les 3 filtres:
J'essaie de résoudre ce problème en effectuant le premier filtre de champ dans la requête WP_Query d'origine, car cela représentera l'essentiel du filtre. Ensuite, je souhaite rassembler une liste d'ID de publication qui correspondent à l'instruction (field2 = null OR field2 = B) (à l'aide d'un second WP_Query), puis effectuer une vérification du WP_Query d'origine par rapport à la liste de post_id's et enlever toutes les allumettes.
le code que je dois faire jusqu'à présent est:
foreach($query['posts'] as $thepost) {
if(in_array($thepost['ID'], $new_query_results['posts'])){
unset($thepost);
}
}
Avec $ query étant le WP_Query principal et $ new_query_results étant le WP_Query qui renvoie simplement un tableau d'ID de publication
L'exécution de ce code me donne l'erreur:
Fatal error: Cannot use object of type WP_Query as array in functions.php on line 190
Line 190: foreach($query['posts'] as $thepost) {
Premièrement, y a-t-il un meilleur moyen d'atteindre mon objectif? Sinon, quelqu'un peut-il trouver un moyen de faire fonctionner cet extrait de code?
WP_Query est un objet et non un tableau. Nécessaire pour utiliser $ query-> posts
Pour ceux que ça intéresse, j'ai trouvé un meilleur moyen de s'attaquer à ce problème. L'exécution de la seconde requête avec les instructions OR et la sortie dans un tableau d'identifiants de publication m'ont permis de filtrer la requête d'origine en fonction de cette liste.