如何获取所有特色图片大小及其URL?

时间:2015-10-25 作者:NoOne

有没有一种标准的方法来获取所有注册的特色图片尺寸?可以注册不同大小的add_image_size().我需要的是得到一个帖子的所有特征图片的大小。类似这样:

$大小=get\\u post\\u feature\\u image\\u大小($posted);

。。。它将返回如下对象数组(此处为JSON格式):

[
{width: 200, height: 300, url: \'http://.........../wp-content/uploads/2015/10/file-200x300.jpg\'},
{width: 300, height: 400, url: \'http://.........../wp-content/uploads/2015/10/file.jpg\'},
]
是否有类似的内容,或者我必须用regex扫描所有上传文件夹文件名?

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

我不记得有哪一个函数能够准确地做到这一点,但总的来说,使用API很容易实现:

使用检索附件IDget_post_thumbnail_id()get_intermediate_image_sizes()wp_get_attachment_image_src(), 它精确地提供了您需要的数据(URL和维度)

SO网友:jave.web

在你得到它的ID(get_post_thumbnail_id($YOUR_POST_ID) ) 您需要知道上传的基本url和附件元数据。

Uploads base url 可以在返回的数组中找到wp_upload_dir().

Attachment meta data 可通过检索wp_get_attachment_metadata().

下面是我编写的一个方便的函数,它为any image attachment, not just featured.

function prepareImageData( $attachment_id ){
  $uploads_baseurl = wp_upload_dir()[\'baseurl\'];

  $prepared = [];
  $data = wp_get_attachment_metadata($attachment_id);
  $prepared = [
    \'mime_type\' => get_post_mime_type($attachment_id),
    \'url\' => $uploads_baseurl.\'/\'.$data[\'file\'],
    \'sizes\' => [],
  ];

  foreach( $data[\'sizes\'] as $size => $sizeInfo ){
    $prepared[\'sizes\'][$size] = [
      \'url\' => $uploads_baseurl.\'/\'.$sizeInfo[\'file\'],
    ];
  }

  return $prepared;
}

SO网友:Ajay Khandal

要根据大小获取图像,可以使用wordpres预定义函数,即the_post_thumbnail( $size, $attr ).

您可以使用预定义的媒体大小。

the_post_thumbnail();                 

the_post_thumbnail( \'thumbnail\' );       // Thumbnail (default 150px x 150px max)
the_post_thumbnail( \'medium\' );          // Medium resolution (default 300px x 300px max)
the_post_thumbnail( \'large\' );           // Large resolution (default 640px x 640px max)
the_post_thumbnail( \'full\' );            // Full resolution (original size uploaded)

the_post_thumbnail( array(100, 100) );
这可能对你有帮助。

相关推荐

Remove <p></p> after images

我对<p></p> 出现在my之后的标记<img....>. 以下是我在本地主机上查看生成的页面时显示的内容。。。<img src=\"/wp-content/themes/wunderful/assets/images/feedback-danielle.png\" alt=\"Danielle Johnson Deal Town FC Treasurer\"> <p></p> 请注意随机生成的<p>&