让typecho支持webp/avif格式图片的设置

让typecho支持webp/avif格式图片的设置

ergou
2025-04-04 / 0 评论 / 4 阅读 / 正在检测是否收录...

自2025年浏览器全面普及WEBP/AVIF图像格式支持以来,这类高压缩率的新型图片已成为网站提速的利器。凭借其显著优化的文件体积优势,采用这两种格式的站点能有效缩短加载时长,提升用户体验。

webp+avif.webp

当前Typecho 1.2.0正式版尚未原生兼容WEBP/AVIF格式上传功能。本文提供零插件解决方案,通过调整三个核心文件的配置参数,即可突破格式限制实现无缝上传。

接下来我们需要修改Typecho的三个文件里面的代码来达到让typecho支持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 就可以正常上传图片了。

注意事项:

如果是虚拟机还需要在主机管理里面添加MIME类型设置,格式如下:

类型扩展:扩展名.webp MIME类型image

下面顺带分享一个,typecho上传图片自动转为webp的插件:

下载地址:

官方地址:
🔒 此处内容需要 登录 才能查看。

安装方法
1、在 Typecho 的插件目录 /usr/plugins 下新建一个名为 AutoWebP 的文件夹;
2、然后下载仓库中的 Plugin.php 文件并添加进 AutoWebP 文件夹中;
3、在 AutoWebP 文件夹中创建一个名为 font 的文件夹,然后往文件夹内放入 SourceHanSansSC-Regular.otf(如果要使用水印功能的话),即可。
4、然后进入后台插件管理里面启用插件即可。

0

评论 (0)

取消