很多时候我们在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将不被裁剪压缩,保持原有的分辨率,问题解决。
THE END