私はギャラリーをページに添付しています。そのページで、私は次のクエリを実行しています。
$events_gallery = new WP_Query( // Start a new query for our videos
array(
'post_parent' => $post->ID, // Get data from the current post
'post_type' => 'attachment', // Only bring back attachments
'post_mime_type' => 'image', // Only bring back attachments that are images
'posts_per_page' => '3', // Show us the first three results
'status' => 'inherit', // Inherit the status of the parent post
'orderby' => 'Rand', // Order the attachments randomly
)
);
私はかなりの数の方法で実験しました、そして、何らかの理由で、私は添付ファイルを返すことができません。ここで明らかな何かが足りないのですか。
更新*
私を正しい方向に向けてくれたWokに感謝します。
それは私が "post_status"の代わりに "status"を使っていたことがわかります。コーデックスは、「添付」投稿タイプのコンテキスト内の説明で例として「ステータス」を使用していました。代わりに "post_status"を参照するようにコーデックスを更新しました。正しいコードは次のとおりです。
$events_gallery = new WP_Query( // Start a new query for our videos
array(
'post_parent' => $post->ID, // Get data from the current post
'post_type' => 'attachment', // Only bring back attachments
'post_mime_type' => 'image', // Only bring back attachments that are images
'posts_per_page' => '3', // Show us the first three results
'post_status' => 'inherit', // Attachments default to "inherit", rather than published. Use "inherit" or "any".
'orderby' => 'Rand', // Order the attachments randomly
)
);
これらは私が使用するクエリパラメータです...私は結果をループするとき私のために働く
array(
'post_parent' => $post->ID,
'post_status' => 'inherit',
'post_type'=> 'attachment',
'post_mime_type' => 'image/jpeg,image/gif,image/jpg,image/png'
);
$args
を追加してください、それは重要です。
'post_status' => 'any'
しない: 'post_status' => null
添付ファイルにはpost_status
がないため、これは重要です。したがって、post_status
のデフォルト値published
では、添付ファイルは見つかりません。
生成されたクエリを見ると、ある種のバグのように見えます。 'status' => 'inherit'は、添付ファイルのdb内のエントリが文字通り 'inherit'の場合、親のステータスとして解釈されます。
別の方法はWP_Queryの代わりにget_childrenを使うことです。
このコードを使用して、投稿の添付ファイルであるすべての画像を表示することができました。
<?php
$args = array( 'post_type' => 'attachment', 'orderby' => 'menu_order', 'order' => 'ASC', 'post_mime_type' => 'image' ,'post_status' => null, 'post_parent' => $post->ID );
$attachments = get_posts($args);
if ($attachments) {
foreach ( $attachments as $attachment ) { ?>
<img src="<?php echo wp_get_attachment_url( $attachment->ID , false ); ?>" />
<?php }
} ?>
元のフルサイズ画像のURLをエコーするには、その画像をにリンクします。
<?php echo wp_get_attachment_url( $attachment->ID , false ); ?>
うまくいけば、これはあなたがやろうとしていることへのアプローチです。