私は与えられたタクソノミとスラッグの組み合わせ(この場合はcategory
= javascript
)で添付ファイルを検索することを必要とするプロジェクトに取り組んでいます。私はこれを達成するためにtax_query
を設定してget_posts()
を使用していますが、それはzilchを返しています。
Get_posts()に渡される配列は次のとおりです。
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) ""
}
カテゴリJavaScript
(スラッグとしてjavascript
を持つ)にイメージがありますが、それは返されていません。
また、それが関連している可能性が低いため、カテゴリは メディアカテゴリ を使用して設定されています。
編集:post_status=>inherit
とpost_status=>any
は、最終結果に変更を加えずに試行されました。
編集2:新しいWP_Query
オブジェクトを作成し、meta_query
を省略すると有効なSQLが作成されますが、meta_query
を含めると、AND 0 = 1
が追加され、クエリ全体では何も返されません。生成されたSQL全体は以下のとおりです。
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
これを試したかどうかはわかりませんが、クエリにpost_status => inherit
を追加してみてください。私は、get_posts
のデフォルトはpublish
であり、それ故、それらのpost_status
は常にinherit
であるので、いかなる添付ファイルも返さないことに気付きました。 get_posts
のコーデックスページでこれを確認しています。
編集:もう一度クエリを見て、あなたはそれがあるべきであるtax_query
にterm
を持っていますterms
: http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters