如何从wp媒体库中获取所有图像及其缩略图

时间:2017-08-01 作者:David Cring

我有一个函数可以返回WordPress媒体库中的所有图像,但问题是它没有返回图像的所有图像大小,例如:(缩略图、小图像、大图像),它只返回原始图像。

function get_images_highcompress_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\'
  );
  $query_images = new WP_Query( $args );
  $images = array();
  foreach ( $query_images->posts as $image) {
      $images[]= $image->guid;
  }
是否有任何其他功能可以从wp媒体库获取所有大小的图像URL。

例如:。Image01.jpg , image01-500X500.jpg, Image01-1080X1080.jpg, Image02.jpg , image02-500X500.jpg, Image02-1080X1080.jpg 就像在一个阵列中一样。

1 个回复
最合适的回答,由SO网友:Johansson 整理而成

这是你能做的。

获取所有可用缩略图大小的列表查询所有附件对于每个附件大小,获取其URL并将其保存到数组中让我们将代码更改为:

function get_images_highcompress_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,
等等。

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post