WordPress 5.3新功能: 对大图片自动缩放生成“网络优化最大尺寸”

WordPress处理大图片的方式一直是用户和开发人员讨论的话题。

通常,上传的图片有两种类型:

  • 在图片编辑应用程序中已编辑过或创建的图片。
  • 直接从相机上传或尚未编辑的照片。

在第一种情况下,图片通常是“可用于网络的”。它们可能已缩小到合适的大小并进行了优化。

在第二种情况下,图片通常比需要的大得多,并且没有针对Web使用进行优化。用普通的现代智能手机拍摄的照片文件大小很容易超过5MB。使用优质相机拍摄的照片可能更大。

WordPress 5.3 引入了一种新方法,来检测大图片并生成它们的“网络优化最大尺寸”。

它是如何工作的?

当上传新图片时,WordPress 将通过检查其高度或宽度是否大于 big_image 阈值,以此来检测它是否为“大”图像。默认阈值为2560px,可以使用新的big_image_size_threshold过滤钩子进行修改。

如果图片的高度或宽度大于此阈值,则将按比例缩小,这个阈值将用作最大高度和最大宽度值。缩小的图像将用作最大可用尺寸。

在这种情况下,原始图像文件存储在uploads目录中,它的名称存储在图像元数组中的另一个数组键:original_image。为了始终获得原始上传图像的路径,引入了一个新函数: wp_get_original_image_path() 

按照上面的说法是,原始大小的图片还将继续保存在uploads目录中,只是缩放生成一个新的图片,作为前端加载的最大可用尺寸。倡萌认为,这里也是有一些弊端的,如果可以提供钩子控制是否删除原图,那才是更好的一种方案。但现在的改进也是非常有意义的,至少前端加载的图片不会是原始图片,要知道原始图片5M以上,加载速度那是非常慢的!

禁用缩放

缩放由 big_image_size_threshold 过滤钩子控制。从过滤钩子回调返回 false 将禁用图片缩放。

add_filter( 'big_image_size_threshold', '__return_false' );
THE END