
很多时候我们在WordPress后台编辑文章的时候,有时候会遇到上传一些比较大的图片,如上传长图,但是发现最后上传完成后变成了很窄很细的图,一点不美观。比如上传800px*5120px的图片,结果上传完成后,变成了400px*2560px的图片。其实这是进入到WordPress 5.3版本后的限制,宽度或高度大于2560px将会被自动裁剪压缩,变成了名称后面为-scaled的图片。
WordPress处理大图像的方式一直是用户和开发人员讨论的话题。
通常,上传两种类型的图像:
- 在图像编辑应用程序中已编辑或创建的图像。
- 直接从相机上传或尚未编辑的照片。
在第一种情况下,图像通常是“可用于网络的”。它们可能已按比例缩小到合适的大小并进行了优化。
在第二种情况下,图像通常比需要的大得多,并且没有针对Web使用进行优化。用普通的现代智能手机拍摄的照片文件大小很容易超过5MB。使用优质相机拍摄的照片可能更大。
WordPress 5.3引入了一种通过检测大图像并生成它们的“网络优化最大尺寸”来管理这些图像的新方法。
它是如何工作的?
当上传新图像时,WordPress将通过检查其高度或宽度是否大于来检测它是否为“大”图像big_image threshold
。默认阈值为2560px,可以使用新的big_image_size_threshold
filter进行过滤。
如果图像的高度或宽度大于此阈值,则将按比例缩小该阈值,并将其用作最大高度和最大宽度值。缩小的图像将用作最大的可用尺寸。
在这种情况下,原始图像文件存储在uploads目录中,其名称存储在图像元数组中的另一个数组键中original_image
。为了始终获得原始上传图像的路径,wp_get_original_image_path()
引入了一个新功能。
如果想要上传的图片保持原有的分辨率大小,解决办法如下:
一、安装插件禁止
直接到WordPress后台安装 Disable“BIG Image”Threshold
插件,安装后启用即可。
二、修改代码实现
对于不喜欢安装插件的小伙伴,可以使用下方的修改代码的方法实现。
修改自己WordPress的主题文件夹下的functions.php文件,然后添加如下的代码
//超过2560px的图片不剪裁
add_filter( 'big_image_size_threshold', '__return_false' );
修改后,再次上传WordPress图片,宽度/高度大于2560px将不被裁剪压缩,保持原有的分辨率,问题解决。
评论前必须登录!
立即登录 注册