WordPress 5.3 对图片的使用和上传后的处理进行了一些增强。
将图片上传到WordPress时,WordPress会自动创建其他较小尺寸的图片副本。这些不同的尺寸有些是WP默认定义的,有些是主题或插件定义的。它们通常被用于不同地方的缩略图输出,或者用于核心(如果它们的纵横比相同)自动生成响应图像。
调整图像大小非常耗费资源。随着时间的推移,图片数量不断增加,可能会容易导致请求失败或内存不足。WordPress 5.3包含多项增强功能,可帮助更多上传成功,并在用户未成功上传时帮助他们进行恢复。这些更改还使WordPress能够生成两个新的、更高分辨率的默认大小,以帮助用户图像看起来更清晰。
创建缩略图使保存图像元数据
在5.3之前的版本中,WordPress将首先生成所有缩略图尺寸大小,然后再将其存在的证据保存在元数据库中。
这意味着,如果上传中途失败,则可能已经生成了不同尺寸的图片,但这不会反映在数据库中。但用户并不知道,只能一次次重新上传,导致不断生成更多缩略图尺寸。
在5.3中,通过保存在数据库中创建的每种尺寸的元数据,来解决这个问题。这会导致更多数据会被写入到数据库中,但允许WordPress使用之前生成的缩略图,并恢复失败的上传。
为了实现这个功能,WordPress 在WP_Image_Editor_GD
和WP_Image_Editor_Imagick
类中引入了一个新方法 make_subsize()
。它返回新的子尺寸图像路径和尺寸,然后添加到图像的sizes
元数据数组中。参见#40439。
其他变化:
- 新增
wp_get_missing_image_subsizes()
和wp_update_image_subsizes()
生成上传后丢失或未创建的图像子尺寸。 - 添加了一种显示创建子尺寸时发生的错误的方法。
- 新增
wp_create_image_subsizes()
,会在图片上传后使用。它会在创建每个子尺寸后,立即保存/更新图像元数据。
如果服务器在创建不同尺寸缩略图的时候,出现资源不足(可怕的“ HTTP错误”消息),则可以尝试在上传后完成图像的后期处理。参见#47872。
“大图像”增强功能
要了解大图片处理的具体内容,请看:WordPress 5.3 可对大图片自动缩放