为Typecho添加webp解析

Typecho 原生不支持解析 Webp 图片,Typecho 1.2.0 依然默认不支持.webp格式图片。在附件插入 webp 文件会被当做文件解析,因此需要魔改 typecho。
废话不多说,上教程。

Typecho 1.2.0之前

1、在 var/Widget/Abstract/Contents.php 中的 686 行左右:
将这行代码

$value['attachment']->isImage = in_array($content['type'], array('jpg', 'jpeg', 'gif', 'png', 'tiff', 'bmp'));

替换为

$value['attachment']->isImage = in_array($content['type'], array('jpg', 'jpeg', 'gif', 'png', 'tiff', 'bmp', 'webp'));

2、再到 var/Typecho/Common.php 的第 1193 行左右
添加如下代码

'webp' => 'image/webp',

3、最后到 Typecho 后台 -> 设置 -> 基本 -> 允许上传的文件类型 -> 其他格式 -> 添加 webp 即可完成解析。
2022-06-06_08-38-09.webp

Typecho 1.2.0版本

1、找到 Typecho 网站所在文件夹内的以下文件:

var/Widget/Themes/Rows.php

定位到大约第48行的位置,将以下代码:

return preg_match("/screenshot.(jpg|png|gif|bmp|jpeg)/i",path);

修改为:

return preg_match("/screenshot.(jpg|png|gif|bmp|jpeg|webp)/i",path);

2、保存修改后,找到 Typecho 网站所在文件夹下的以下文件:

var/Widget/Base/Contents.php

定位到大概第557行,将以下代码:

$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']);

3、保存修改后,再找到 Typecho 网站所在文件夹下的以下文件:

var/Typecho/Common.php
找到图片格式所在的行,大约是在1259行后的位置添加下面这一行代码:

'webp' => 'image/webp',

4、保存修改后,最后进入 Typecho 网站后台,前往 设置 > 基本,在允许上传的文件类型部分,勾选其他格式,并添加webp,然后点击保存设置。
2022-06-06_08-38-09.webp

© 版权声明
THE END
如果喜欢,可以【点赞】【分享】【收藏】
点赞8赞赏 分享
评论 抢沙发
头像
人生坎坎,山山而峦,不过尔尔;心路漫漫,水水而川,如此悠悠
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容