使 Typecho 支持上传 WEBP AVIF 格式的图片
自 2025 年起,几乎所有的浏览器都已经完美支持 WEBP AVIF 格式的图片,并且此类格式有着占用空间小的优势,意味着用 WEBP AVIF 格式图片的网站加载速度会更快一些。
Typecho 官方 1.2.0 的正式版本还未能适配 WEBP AVIF 格式图片的上传,本教程无需插件,直接修改三个文件就可以达到此类格式图片上传的目的。
1、编辑var/Widget/Themes/Rows.php
将
return preg_match("/screenshot\.(jpg|png|gif|bmp|jpeg)$/i", $path);
变更为
return preg_match("/screenshot\.(jpg|png|gif|bmp|jpeg|webp|avif)$/i", $path);
2、编辑var/Widget/Base/Contents.php
将
$value['attachment']->isImage = in_array($content['type'], ['jpg', 'jpeg', 'gif', 'png', 'tiff', 'bmp']);
变更为
$value['attachment']->isImage = in_array($content['type'], ['jpg', 'jpeg', 'gif', 'png', 'tiff', 'bmp', 'webp', 'avif']);
3、编辑var/Typecho/Common.php
在
'jpg' => 'image/jpeg',
后面添加
'webp' => 'image/webp',
'avif' => 'image/avif',
4、在后台 - 基本设置 - 其他格式
里填入webp avif
就可以正常上传图片了。