代码步骤:
1,文章类型为collection的文章中获取最新一片文章(里面有用gutenburg编辑器添加的相册)。
2,从文章中获取第一个相册的图片,并将图片的id输出。
3,判断图片的数量。如果超过12张,那么最多随机显示12张不同的图片。如果不超过12张,那么全部输出。
4,结构化,用a标签套住img标签。img显示的为中等大小的图片。a链接的是全尺寸图片。
<?php $collection_args = array( 'post_type' => 'collection', 'posts_per_page' => 1, ); $collection_query = new WP_Query($collection_args); if ($collection_query->have_posts()) { while ($collection_query->have_posts()) { $collection_query->the_post(); if (has_block('gallery', $post->post_content)) { $post_blocks = parse_blocks($post->post_content); $img_ids = ($post_blocks['0']['attrs']['ids']); if (count($img_ids) > 12) { $nums = 12; } else { $nums = count($img_ids); } $arr = $arr_history = $img_ids; $selected_home_gallery_items = array(); for ($i = 0; $i < $nums; $i++) { if (empty($arr_history)) { $arr_history = $arr; } $key = array_rand($arr_history, 1); $selected = $arr_history[$key]; unset($arr_history[$key]); array_push($selected_home_gallery_items, $selected . PHP_EOL); } foreach ($selected_home_gallery_items as $selected_home_gallery_item) { ?> <div class="slide hasbg"> <a href="<?php echo wp_get_attachment_image_src($selected_home_gallery_item, 'full')[0]; ?>"> <?php echo wp_get_attachment_image($selected_home_gallery_item, 'medium'); ?> </a> </div> <?php } } } }?>
评论区
发表新的留言
您可以留言提出您的疑问或建议。
您的留言得到回复时,会通过您填写的邮箱提醒您。