WordPress亲测教程:虚拟主机不能上传Webp格式图片的解决方法
不管是维护自己的网站还是给客户做网站,都会不自觉的尽量去优化和压缩图片,特别是文章和产品配图,我都会尽量去转换成webp格式,而且大多数时候客户给的图片根本没办法直接用,试想把那种几M几十M的图片插入的产品或文章中会有什么样的效果?
近期在做一个wordpress外贸建站项目时,遇到了一个webp图像格式不能上传的问题。wordpress使用的是6.0版本,程序本身是支持webp图像格式的,那是什么问题呢,接下来给大家分享解决方法。
步骤一:分析原因
如上图所示,在上传webp图片时,wordpress给出如下提示:
web 服务器无法处理该图片,请在上传前将其转换为JPEG或PNG 格式。
从给出的提示可以看出这可能与服务器有关,而客户的这个网站使用的是阿里云的虚拟主机,这就不奇怪的,因为很多虚拟主机都可能会遇到类似的问题,在服务器上一般是没有问题的。而且我发现只在有媒体库界面上传图片时才会出现这个错误提示,而使用普通的上传方式是可以直接上传webp图片的。
步骤二:勉强的解决方法
实现我遇到的这个问题算不上问题,这是因为虚拟主机性能限制造成的,而且我们只需要在页面或文章编辑界面添加图像相关模块,然后点【上传】按扭就可以直接上传webp图像模式,不会报错。如果你需要上传的图片不是很多,也不需要批量上传,那么这种方式也是可以的,完全够用。
另外还有一种笨办法。因为wordpress本身是支持webp格式的,只是服务器检查到webp格式所以给禁止了,所以我们可以把webp格式的扩展名修改为jpg或png格式,这样就可以直接上传了。
步骤三:完整的解决方法
如果你不喜欢上面的处理方法,或者是与我一样有强迫症,那么可以使用下面的代码来解决,这个方法同样适用于服务器和虚拟主机:
//取消webp格式环境检查
add_filter('plupload_default_settings', function($defaults) {
$defaults['webp_upload_error'] = false;
return $defaults;
}, 10, 1);
add_filter('plupload_init', function($plupload_init) {
$plupload_init['webp_upload_error'] = false;
return $plupload_init;
}, 10, 1);
把上面的代码添加到当前wordpress建站主题的functions.php文件中,然后保存即可生效。
接下来我们重新在媒体库界面上传webp图像格式,已经可以上传了,wordpress并没有报错。不过这样也有一个不算问题的问题,就是上传的webp格式图片不能使用wordpress提供的编辑功能,一般我们也用不上这个功能,要处理图片我们都是直接在本地处理好再上传的,这个功能我们几乎都不会使用。
总结
如果你的wordpress站点也遇到了webp图像格式不能上传的问题,那么本文提供的方法可供参考。这个问题基本上只在虚拟主机上会出现,特别是国内的虚拟主机,国外的有些虚拟主机是可以直接支持的不会报错,但偶尔也会遇到这个问题,处理方法同样可以参考上面的。