使 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 就可以正常上传图片了。

