WordPress刚刚上线的 6.5 版本支持AVIF格式图片的上传,不过一开始嘛,难免会有点问题,这不就来第一个了。
之前在如何调整WordPress图片分辨率的笔记里说过,我们上传到WordPress的图片,它会自动生成3个不同的尺寸(有些插件和主题还会额外生成其他尺寸),这是为了防止在一些小的地方也用大的源图片占用网站加载速度。
最近由于WordPress新版本的更新,试了试就发现了这个问题,上传的AVIF图片没有生成额外的尺寸,同时包括其他格式的图片。
为什么上传的图片没有生成额外尺寸?
首先,WordPress本身它是没有能力自己给上传的图片生成不同尺寸的,它需要用到我们服务器或网站托管服务商提供的一个小PHP功能,通常比较常见的就是 Imagick 和 GD。
如果你没有安装 Imagick 和 GD 或者使用的版本不对,那么你的WordPress就对图片做不了如何操作,包括生成图片的额外尺寸。
怎么知道有没有安装使用 Imagick 或 GD ?
查看你的网站有没有在使用 Imagick 或 GD 其实很简单。
我们去到WordPress后台 > 工具 > 站点健康 > 信息 > 媒体处理
下面是最理想的一个状态,Imagick 和 GD 都有,而且都支持AVIF格式图片,这没啥问题。
下面这个就是不对的一个状态,也是上传AVIF图片不生成额外尺寸的原因。
1. 网站开启 Imagick
如果你打算开启这个的话,我是比较建议你开 Imagick 来匹配 AVIF 格式的,上面的图片你也可以看到,它支持的格式比 GD 多得多,而且不看 PHP 版本,任何一个版本都行,哪怕你现在还在用 7.0 版本的 PHP.
一开始也说了,这个和我们的WordPress本身无关,是服务器的问题,所以这里每家服务商可能都会有些许不同。
1.1. SiteGround 开启 Imagick
在 Siteground 开启 Imagick 我们需要去到想要开启的网站,在左侧的菜单选择 Devs > PHP Manager > PHP EXTENSIONS > Imagick > 点击铅笔编辑开启 Imagick
1.2. Hostinger 开启 Imagick
网站管理 > 高级设置 > PHP 管理 > PHP 扩展 > 开启 Imagick
2. 网站开启 GD
开启 GD 是另外一种选择,不过它对 PHP 版本有要求,要支持 AVIF 格式需要 8.1 PHP 版本或以上版本。所以如果你已经开了GD,可还是不支持AVIF图片,那么肯定是因为你PHP版本不对,需要升级一下。
2.1. SiteGround 开启 GD
直接去 Devs > PHP Manager > PHP VERSION > Change PHP version manually > 选择 8.1 或以上就行。这里建议给你网站先做个备份。
2.2. Hostinger 开启 GD
操作也很类似,去到网站管理 高级设置 > PHP 管理 > 选择 8.1 以上就行。