web-dev-qa-db-ja.com

Tax_queryパラメータを設定してget_posts()を使用すると、添付ファイルが機能しない

私は与えられたタクソノミとスラッグの組み合わせ(この場合は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=>inheritpost_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
1
Dan

これを試したかどうかはわかりませんが、クエリにpost_status => inheritを追加してみてください。私は、get_postsのデフォルトはpublishであり、それ故、それらのpost_statusは常にinheritであるので、いかなる添付ファイルも返さないことに気付きました。 get_posts のコーデックスページでこれを確認しています。

編集:もう一度クエリを見て、あなたはそれがあるべきであるtax_querytermを持っていますtermshttp://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters

1
Manny Fleurmond