J'utilise une requête personnalisée pour extraire des publications d'un type de publication personnalisé. J'ai des problèmes avec elle, alors j'ai utilisé print_r sur mon objet WP_Query et j'ai trouvé quelque chose d'étrange.
my query has these arguments:
'post_type' => 'event'
,'tax_query' => array(
array(
'taxonomy' => 'event-categories'
,'field' => 'id'
,'terms' => 72
,'operator' => 'IN'
)
)
,'order' => 'ASC'
);
$query = new WP_Query( $args );
et lorsque je supprime la partie tax_query, je reçois tous mes messages, mais lorsque je l'inclus, je n'en reçois aucun. Je suis certain que j'ai plus d'une publication avec l'ID de taxonomie 72. Lorsque je regarde mon print_r ($ query) avec le type de publication, je vois ceci:
WP_Query Object
(
[query_vars] => Array
(
[post_type] => Array
(
[0] => media_player
[1] => ada_slides
[2] => closings
[3] => staff
[4] => post
[5] => page
)
Tous mes types de publication sont répertoriés à l'exception de celui que je voulais, événement. Si je retire tax_query de mes arguments, cela ressemble à ceci:
WP_Query Object
(
[query_vars] => Array
(
[post_type] => event
[order] => ASC
...etc
De plus, si je change d'opérateur en NOT IN, il recherche le type de publication correct mais exclut la catégorie que je souhaite rechercher.
Pourquoi utiliser un argument tax_query invaliderait-il apparemment mon argument post_type et inclurait-il tous les types de publication, à l'exception de celui que je voulais?
S'est avéré être un conflit de plugin. J'avais éteint tous les plugins à un moment donné, sans aucun avantage notable, mais en ai réactivé quelques-uns pour que je puisse exécuter d'autres tâches sur le site avec lequel je travaillais.
Le problème était avec le plugin Easy Custom Content Types (un plugin très pratique ) et je vérifie auprès du développeur. Il semblerait que je n’aie pas la dernière version non plus, alors il l’a peut-être déjà corrigée.