現在のページのすべての添付ファイルまたは現在投稿している投稿にクエリするためにこれを使用します。
$query_images_args = array(
'post_type' => 'attachment',
'post_mime_type' =>'image',
'post_status' => 'inherit',
'posts_per_page' => -1,
'post_parent' => $post->ID //$post->post_parent
);
$attachments = get_children($query_images_args);
if ( empty($attachments) ) {
$query_images_args = array(
'post_type' => 'attachment',
'post_mime_type' =>'image',
'post_status' => 'inherit',
'posts_per_page' => -1,
'post_parent' => $post->post_parent
);
}
$query_images = new WP_Query( $query_images_args );
$images = array();
foreach ( $query_images->posts as $image) {
$images[] = wp_get_attachment_image_src( $image->ID, 'large');
}
foreach ( $images as $image) {
if ( $image[1] >= 1024 )
$large_images[] = $image[0];
}
if ( !empty($large_images) ):
これは完璧に動作し、現在の投稿またはページの画像のみを照会します。
しかし、このコードを実行してほしいということがもう1つあります。
ページに画像が添付されておらず、画像が添付されているページの「子ページ」である場合は、「親ページ」の画像をクエリします。
再び:
親ページ - >画像が添付されている子ページ - >画像が添付されていない - >親ページの画像を問い合わせる
これは$post->post_parent
で行うことができます
$query_images_args = array(
'post_type' => 'attachment',
'post_mime_type' =>'image',
'post_status' => 'inherit',
'posts_per_page' => -1,
'post_parent' => $post->post_parent
);
しかし、これら2つのケースを区別する方法はわかりません。
ページに画像が添付されている場合はコードを'post_parent' => $post->ID
にし、ページが子ページで画像が添付されていない場合はコードを'post_parent' => $post->post_parent
にします
それについて何かアイデアはありますか?
get_children
を使用してそれが何かを返すかどうかを確認し、そうでない場合は親添付ファイルを取得します。
//loop stuff
//your $query_images_args
$attachments = get_children($query_images_args);
if ( empty($attachments) ) {
//go get parent attachments
}else{
//loop through this post's attachments
}