MkLetterAvatar:Typecho 评论区自动生成昵称首字头像

MkLetterAvatar:Typecho 评论区自动生成昵称首字头像

夜影
2026-10-28 / 0 评论 / 3 阅读 / 正在检测是否收录...

MkLetterAvatar:Typecho 评论区自动生成昵称首字头像

前言:评论区为什么总是灰色头像

用 Typecho 建站的朋友大概都遇到过这个场面:评论区里一片清一色的灰色小人剪影,或者干脆裂图。原因很简单——Typecho 默认用 Gravatar 显示评论头像,而绝大多数访客根本没有注册过 Gravatar,Gravatar 在国内访问还经常抽风,头像就只能显示默认图,难看不说,还分不清谁是谁。

今天分享的这个插件就是解决这个问题的:MkLetterAvatar(Typecho 版)。它会给没有头像的评论者自动生成一张“昵称首字头像”:彩色底 + 昵称第一个字,每个人的颜色按名字固定,一眼就能分清谁是谁,评论区立刻有了人味。

MkLetterAvatar:Typecho 评论区自动生成昵称首字头像1.png

干什么用

一句话:没头像的评论者,自动用昵称首字生成一张专属头像。

具体效果是这样的:

  • 昵称首字:比如评论者叫“零距离”,头像就是彩色底上一个“零”字;叫 docker,头像就是一个字母 d。
  • 颜色按人固定:颜色是按昵称首字的编码从 20 色里取的,同一个人在所有文章下的头像颜色都一样,辨识度很高。
  • 有头像的人不受影响:注册过 Gravatar 的评论者继续显示自己的真实头像,插件不会动它。
  • QQ 邮箱评论者不受影响:在 Joe 主题下,QQ 邮箱本来走 QQ 头像,插件同样不会动。
  • 不产生服务器缓存:头像完全在访客浏览器里用 Canvas 现场画出来,服务器上不生成任何图片文件,干净、省空间。
  • 体积小:整个插件只有一个 PHP 文件,不到 10KB。

这个插件从哪来

这个插件不是凭空写的,它有一条清晰的来源线:

  1. 原版是 WordPress 插件 mk-letter-avatar,作者是孟坤(mengkun)。它的思路很巧妙:把头像地址的默认图参数改成 d=404 试探——有真实头像就正常显示,没有就让浏览器现场画一张字母头像。整个原版不到 5KB,纯前端实现。
  2. 本站长把它 fork 到了自己的 GitHub(yeyinghai/mk-letter-avatar),作为这个小工具的落脚点。
  3. Typecho 版是在原版基础上移植的:WordPress 靠 get_avatar 过滤器改写头像标签,Typecho 没有这个过滤器,所以移植版把同样的逻辑搬到了前端——脚本随页面输出,先试探头像地址有没有真实头像,没有才换成字母头像。生成算法、颜色列表、只取首字、过滤 emoji 这些核心逻辑与原版完全一致,功能没有打折。

也就是说:这是一个有年头的成熟思路,只是第一次被完整地搬到 Typecho 上。

安装方法

一共三步,不用改代码:

  1. 下载插件包:点此下载 MkLetterAvatar.zip;
  2. 解压后把 MkLetterAvatar 文件夹上传到 Typecho 的 usr/plugins/ 目录下(最终路径是 usr/plugins/MkLetterAvatar/Plugin.php);
  3. 进博客后台「控制台 → 插件」,找到「MK 字母头像」点启用,完事。

启用后不需要任何设置,默认配置就能直接用。插件提供了两个可选设置项,需要时再动:

  • 头像图片选择器:默认 img.avatar。Typecho 默认主题和 Joe 主题的评论头像都是这个类名,一般不用改。
  • 头像背景颜色列表:默认 20 个颜色,空格分隔,可以按自己的喜好增删改。

实测效果

这个插件已经在本站(夜影小窝)启用并实测过。拿本站一篇有评论的文章看效果:

  • 未注册 Gravatar 的评论者,头像变成了彩色底 + 昵称首字;
  • 站长本人的真实头像保持不变;
  • 整个评论区的头像加载正常,没有裂图和空白。

MkLetterAvatar:Typecho 评论区自动生成昵称首字头像2.png

注意事项

  • 主题要支持页脚钩子:插件的脚本是挂在 Typecho 的页眉/页脚钩子上输出的,绝大多数主题(包括 Joe)都支持;极少数自定义主题如果没有调用页脚输出,插件会不生效,这种情况换回标准主题模板即可。
  • 头像源可以继续用 Cravatar:本站把头像源换成了 Cravatar,配合这个插件是最佳组合——有头像的拉真实头像、拉不到的现场生成字母头像、QQ 邮箱的走 QQ 头像,三条线互不干扰。
  • 换颜色立即生效:在插件设置里改了颜色列表后,刷新页面就能看到新颜色,不用清任何缓存(因为本来就没有缓存)。
  • 如果头像没有变化:先确认插件已启用,再看主题评论头像是不是 img.avatar 这个类名;如果主题用了别的类名,在插件设置里把选择器改成对应的类名即可。

卸载方法

同样简单:后台「控制台 → 插件」里禁用「MK 字母头像」,再把 usr/plugins/MkLetterAvatar/ 文件夹删掉,评论头像就恢复到启用前的状态,不会在数据库和服务器上留下任何东西。

写在最后

评论区是博客最有人气的地方,一排灰色默认头像实在煞风景。这个插件不改数据库、不占空间、不依赖外部头像服务,就让每个评论者都有了自己的脸。如果你也在用 Typecho,不妨装上试试。

下载

相关旧文

0

评论 (0)

取消