Je travaille sur un projet qui nécessite de rechercher des pièces jointes avec une paire taxonomie-slug donnée (dans ce cas, category
= javascript
). J'utilise get_posts()
avec tax_query
défini pour y parvenir, mais il renvoie zilch.
Le tableau en cours de transmission à get_posts () est le suivant:
array(8) {
["tax_query"]=>
array(1) {
[0]=>
array(3) {
["taxonomy"]=>
string(8) "category"
["field"]=>
string(4) "slug"
["term"]=>
array(1) {
[0]=>
string(10) "javascript"
}
}
}
["numberposts"]=>
int(-1)
["orderby"]=>
string(10) "menu_order"
["order"]=>
string(3) "ASC"
["post_status"]=>
string(7) "inherit" // 'any' also tried
["post_type"]=>
string(10) "attachment"
["post_mime_type"]=>
string(34) "application,video,text,audio,image"
["post_parent"]=>
string(0) ""
}
Il y a une image dans la catégorie JavaScript
(qui a javascript
comme slug), mais elle n'est pas renvoyée.
En outre, si cela est pertinent, la catégorie est définie à l'aide de catégories de médias .
EDIT: post_status=>inherit
et post_status=>any
ont été essayés sans changement du résultat final.
EDIT 2: La création d'un nouvel objet WP_Query
en omettant le meta_query
crée un SQL valide, mais l'inclusion de meta_query
ajoute ceci: AND 0 = 1
, ce qui oblige évidemment la requête entière à ne rien retourner. Le code SQL complet généré est ci-dessous:
SELECT SQL_CALC_FOUND_ROWS cms_posts.ID
FROM cms_posts
WHERE 1=1
AND 0 = 1
AND (
cms_posts.post_mime_type
LIKE 'application/%'
OR cms_posts.post_mime_type
LIKE 'video/%'
OR cms_posts.post_mime_type
LIKE 'text/%'
OR cms_posts.post_mime_type
LIKE 'audio/%'
OR cms_posts.post_mime_type
LIKE 'image/%')
AND cms_posts.post_type = 'attachment'
AND (cms_posts.post_status <> 'trash'
AND cms_posts.post_status <> 'auto-draft'
AND cms_posts.post_status <> 'spam')
GROUP BY cms_posts.ID
ORDER BY cms_posts.menu_order
ASC LIMIT 0, 10
Je ne sais pas si vous avez essayé, mais essayez d'ajouter post_status => inherit
à votre requête. J'ai constaté que get_posts
est défini par défaut sur publish
et ne renverra donc aucune pièce jointe, car son post_status
est toujours inherit
. La page de codex sur get_posts
le confirme.
Modifier: en regardant votre requête à nouveau, vous avez term
dans le tax_query
où il devrait être terms
: http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters