以下のコードは、すべてのサイズのwp galleryのすべての画像を表示していますが、それが好きではありません。
function get_images_high_data() {
$args = array(
'post_type' => 'attachment',
'post_mime_type' => 'image/jpeg,image/jpg,image/png',
'post_status' => 'inherit',
'posts_per_page' => -1,
'orderby' => 'id',
'order' => 'ASC'
);
// Get all the available thumbnail sizes
$sizes = get_intermediate_image_sizes();
// Query the attachments
$query_images = new WP_Query( $args );
$images = array();
// Run a loop
if ( $query_images->have_posts() ){
while ($query_images->have_posts()){
$query_images->the_post();
// For each attachment size, store its URL in an array
foreach ( $sizes as $key => $size ) {
$thumbnails[$key] = wp_get_attachment_image_src( get_the_ID(), $size)[0];
}
$images = array_merge( $thumbnails , $images );
}
return $images;
}
}
返される配列は次のようになります。
[0] => thumbnail-url,
[1] => medium-url,
[2] => large-url,
[3] => thumbnail-url,
[4] => medium-url,
[5] => large-url,
しかし、私が'posts_per_page' => 1
を設定すると、このように表示されます。
[0] => thumbnail-url,
[1] => medium-url,
[2] => large-url,
しかし、私は以下のような出力が欲しいです。
[0] => thumbnail-url,
'posts_per_page' => 2
を設定すると、このように表示されます。
[1] => medium-url,
[2] => large-url,
私がすでにあなたの 前の質問 で述べたように、ページごとの投稿を設定することはあなたを助けません。ただし、回避策があります。
ページごとに投稿を直接設定する代わりに、変数を使用してそれを変更します。それから同じ変数を使って配列をスライスします。例えば:
$per_page = 2;
// Use the $per_page value to set the posts per page
$args = array(
'posts_per_page' => $per_page,
);
// The rest of your code here
// Now, before returning the images, slice the array using
// the variable we set before
$images = array_slice($images, 0, $per_page);
return $images;