首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么wordpress生成的缩略图比3种标准尺寸要多?

为什么wordpress生成的缩略图比3种标准尺寸要多?
EN

WordPress Development用户
提问于 2020-07-10 09:28:49
回答 1查看 916关注 0票数 1

如果我用Wordpress上传图片,它通常会产生比我在设置->媒体(小150,中300,大1024)中所显示的图像大小更多的图像。

例如,如果我上传一个4K图像,它会产生多达7个副本+原始副本(150,300,768,1024,1536,20148,缩放,原件)。

我使用基于下划线的子主题,但似乎没有文件函数告诉Wordpress生成其他副本。

它们是从哪里来的?

EN

回答 1

WordPress Development用户

发布于 2020-07-10 09:43:32

WordPress生成超过3个缩略图或图像子大小,因为WordPress中实际上有3个以上的标准/核心图像大小。此外,主题和插件还可以注册自定义图像大小。:)

6+1标准/核心图像大小

  • 默认(4):Thumbnail、中型、大型和中大型(**medium_large**),但只有默认情况下可以在wp-admin→设置→媒体上配置的前三种。
  • 默认附加/自定义大小(2):1536x1536 2048x2048,它们在内部/通过使用add_image_size()_wp_add_additional_image_sizes()自动添加。
  • 缩放(在图像文件名中使用-scaled ):可用于高分辨率和非PNG图像,其中WordPress复制原始(大)图像,并将其缩小到默认为2560像素的阈值大小。

例如,如果我上传一个4K图像,它会产生多达7个副本+原始副本(150,300,768,1024,1536,20148,缩放,原件)。

因此,在这种情况下(但请注意,我相信您用"20148“做了一个错误,应该是2048年),原始图像的7份副本很可能是:

  • 150 -指甲
  • 300 -中等
  • 768 -中型
  • 1024 -大
  • 1536年-核心自定义图像大小(1536x1536)
  • 2048年-核心自定义图像大小(2048x2048)
  • 标度-核心标度

如果要确定,可以使用get_intermediate_image_sizes()检查站点上的所有注册图像大小。您还可以使用wp_get_additional_image_sizes()获得附加/自定义大小(包括WordPress添加的1536x15362048x2048 )。

实际上,您可以使用wp_get_attachment_metadata() (参见最下面的示例)检查图像附件可用的大小。

非核心/其他自定义图像大小

主题和插件可以使用相同的add_image_size()注册自定义图像大小,因此如果您注意到比核心大小更大(请参见上面),那么额外的大小可能是由站点上的活动主题或插件添加的。例如。

因此,对于这样的自定义图像大小,您可以搜索主题或插件文件中的add_image_size或set_post_thumbnail_size。

如何从生成的

中禁用某些图像大小

  • 对于通过add_image_size()添加的6个标准/核心尺寸和所有其他大小,例如medium_large2048x2048,您可以使用intermediate_image_sizes_advanced钩子:add_filter(‘mediate_image_ size _advanced’)、函数( $sizes ){ //禁用2048x2048大小。unset( $sizes );//或可能只允许特定的大小: /* $allowed =;foreach ( $sizes as $name => $size ){ if (!in_array( $name,$allowed ){ unset( $sizes );} */返回$sizes;} );
  • 对于核心缩放大小,您需要使用big_image_size_threshold钩子://禁用阈值。add_filter(“__return_false”);/或可能增加它: /* add_filter(‘/*_image_size_阈值’,函数() {返回3032;} );*/

不管是哪种方式,确保你知道自己在做什么,并正确地去做。

核心规模与wp_get_attachment_metadata()

(我在以前的修订中提到了这一点,所以我想我应该把它包括在这里。)

对于具有核心缩放图像的图像附件,如下面所示,主widthheightfile项将指向缩放图像,而不是原始图像。但是,原始文件的名称在original_image中可用。

代码语言:javascript
复制
// Query an attachment with a core Scaled image.
var_dump( wp_get_attachment_metadata( 123 ) );
/* Sample output:
array(6) {
  ["width"]=>
  int(2560)
  ["height"]=>
  int(1440)
  ["file"]=>
  string(25) "2020/07/hi-res-scaled.jpg"
  ["sizes"]=>
  array(7) {
    ["medium"]=>
    array(4) {
      ["file"]=>
      string(18) "hi-res-300x169.jpg"
      ["width"]=>
      int(300)
      ["height"]=>
      int(169)
      ["mime-type"]=>
      string(10) "image/jpeg"
    }
    ["large"]=>
    ...
    ["thumbnail"]=>
    ...
    ["medium_large"]=>
    ...
    ["1536x1536"]=>
    ...
    ["2048x2048"]=>
    ...
  }
  ["image_meta"]=>
  array(12) {
    ...
  }
  ["original_image"]=>
  string(10) "hi-res.jpg"
}
*/

// Query an attachment without a core Scaled image.
var_dump( wp_get_attachment_metadata( 456 ) );
/* Sample output: (no original_image)
array(5) {
  ["width"]=>
  int(1024)
  ["height"]=>
  int(768)
  ["file"]=>
  string(21) "2020/07/foo-image.jpg"
  ["sizes"]=>
  array(3) {
    ["medium"]=>
    array(4) {
      ["file"]=>
      string(21) "foo-image-300x225.jpg"
      ["width"]=>
      int(300)
      ["height"]=>
      int(225)
      ["mime-type"]=>
      string(10) "image/jpeg"
    }
    ["thumbnail"]=>
    ...
    ["medium_large"]=>
    ...
  }
  ["image_meta"]=>
  array(12) {
    ...
  }
}
*/
票数 8
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/370768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档