WP_Queryでメディアを投稿タイプとして使用する際は注意が必要

WP_Queryでメディアを投稿タイプとして使用する際は注意が必要



WordPressでWP_Queryのpost_typeにattachment(メディア)を指定して、ギャラリーを作成してみようと思いまして、いつも通り

$args = array(
   'post_type'      => 'attachment',
   'posts_per_page' => '10',
)
$gallery = new WP_Query( $args );

と書いたのですが、投稿が表示されませんでした。

調べてみると、

$args = array(
   'post_type'      => 'attachment',
   'posts_per_page' => '10',
   'post_mime_type' => 'image',
   'post_status'    => 'inherit',
)
$gallery = new WP_Query( $args );

のように、

'post_mime_type' => 'image',
'post_status'    => 'inherit',

を追加する必要があるようです。

‘attachment’ – 添付ファイル。WP_Query のデフォルトでは ‘post_status’ が ‘published’ ですが、添付ファイルはデフォルトで ‘post_status’ が ‘inherit’ になっています。そのため ‘post_status’ を明示的に ‘inherit’ か ‘any’ にしなければ、どの添付ファイルも取得できません。(後に出てくる ステータスのパラメータ を見てください)
参考
Broken? WP_Query and "attachment" as a post type

壊れた?投稿タイプとしてのWP_Queryと “attachment”

WordPress Development Stack Exchange

今日はここまで

関連する記事



こちらはいかが?


コメントを残す