升级到最新的5.3版本之后,发现上传的高度大的图片时候,图片的宽度老是被同比例压缩,导致大图片看不清。
因为我的博客会经常更新我的一些企业网站的建设案例模版,这些网站的首页高度大部分都是3000px以上的,所以图片几乎都会被压缩,体验特别不好。
所以,查了一下资料,发现图片压缩是wordpress 5.3新添加的功能。
它是如何工作的?
当上传新图片时,WordPress 将通过检查其高度或宽度是否大于 big_image 阈值,以此来检测它是否为“大”图像。默认阈值为2560px
,可以使用新的big_image_size_threshold
过滤钩子进行修改。
如果图片的高度或宽度大于此阈值,则将按比例缩小,这个阈值将用作较大高度和较大宽度值。缩小的图像将用作较大可用尺寸。
在这种情况下,原始图像文件存储在uploads目录中,它的名称存储在图像元数组中的另一个数组键:original_image。为了始终获得原始上传图像的路径,引入了一个新函数: wp_get_original_image_path()
。
这个更新的优点就是通过手机上传的图片,会被压缩,大家知道现在智能手机拍摄的图片,大部分分辨率都特别高,一张图片基本至少2M以上,所以这个功能,也是不错的。
但是我真的不需要这个功能,所以就干掉它
修改方法:
缩放由 big_image_size_threshold 过滤钩子控制。从过滤钩子回调返回 false 将禁用图片缩放。在当前主题的 functions.php 中添加以下php代码:
add_filter( 'big_image_size_threshold', '__return_false' );
但是还想要更灵活的缩放图片怎么办?
用下面这个插件:
Imsanity:限制上传图片尺寸大小
Imsanity 插件允许你设置图片的较大宽度和高度,一旦用户上传的图片超过了这个设置宽度或高度,就会自动将图片缩小,以达到限制用户上传过大图片的目的。此外,插件还提供了一个批量处理已经上传的图片的功能,可以根据你设定的宽高,扫描出超过限制的图片,然后可以执行批量处理这些图片。
比较值得称道的是,如果根据设定值缩小的图片体积大于原图,Imsanity 就不会缩小这个图片;如果你希望Imsanity不要缩小你上传的图片,只要你的名文件以 -noresize
结尾即可,比如photo-noresize.jpg