GravatarFallback
插件/ 2026-09-01/0/ 编辑
GravatarFallback
GravatarFallback 是面向 Typecho 1.3.0 的评论头像故障回退插件。主题继续优先加载 Gravatar;当 Gravatar 图片因网络、DNS、超时或 HTTP 错误无法加载时,浏览器自动切换到插件内置的本地默认头像。
下载
安装
- 将整个
GravatarFallback 文件夹上传到 Typecho 的 /usr/plugins/ 目录。 - 登录 Typecho 后台,进入“控制台 → 插件”,启用“GravatarFallback”。
- 确认“设置 → 评论”中的评论头像功能已启用。
- 如需替换默认图标,进入插件设置并填写一个可公开访问的 HTTP 或 HTTPS 图片地址;留空则使用插件内置头像。
目录必须保持为 /usr/plugins/GravatarFallback/Plugin.php,不要只上传 Plugin.php。
工作方式
- 插件接管 Typecho
Widget\Base\Comments 的 gravatar 钩子,兼容使用 $comments->gravatar() 输出头像的主题。 - 正常情况下只请求
https://secure.gravatar.com/avatar/,不会由服务器额外探测 Gravatar,因此不会拖慢页面生成。 - 图片加载失败后,
onerror 只执行一次,并移除可能存在的 srcset 后切换默认图片,避免高分辨率地址或默认图标再次失败时形成循环。 - 插件不会修改评论、邮箱、数据库或主题文件;停用后 Typecho 恢复原有 Gravatar 输出。
验证故障回退
打开一篇有评论的文章,在浏览器开发者工具中临时屏蔽 secure.gravatar.com,再刷新页面。评论头像应自动显示插件内置图标,控制台不应出现循环请求。
兼容与安全说明
- 目标版本:Typecho 1.3.0。
- 主题必须调用 Typecho 标准的
$comments->gravatar() 方法;完全自行拼接头像 HTML 的主题不会触发插件钩子。 - 自定义默认头像只接受 HTTP 或 HTTPS URL;输出到 HTML 前会进行属性转义。
- 与 Typecho 默认行为相同,评论邮箱会被规范化后计算 MD5,并作为 Gravatar URL 的标识。哈希并不等同于匿名化,仍可能被字典枚举。
许可证
插件代码和内置 SVG 头像采用 MIT License。