Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/laozhangge/wp-comment-guard/archive/refs/heads/main.zip给 WordPress 评论外链做分级与体检:久未往来的访客链接降为纯文本,域名被抢注成博彩/色情/诈骗站的自动拦下,抓不到的一律不降级。
只改显示,不改数据库。所有降级都是渲染时把
<a>换成<span>,评论本身、数据库字段一个字不动。
作者:老张 | 下载:Releases | 更新日志:CHANGELOG.md
它解决什么问题
博客跑得久了,评论区会攒下几千个外链。麻烦在于这些链接会变:
- 老博友的域名被抢注 —— 十几年前一起写博客的人早就不写了,域名到期被买走,现在指向博彩站,链接还挂在你的文章下面。
- 人还在,旧域名没了 —— 他换了域名、还在留言,但旧域名已经过期,随时可能被人注册。
- 域名变成交易所/资源站 —— 站还是那个站,内容已经不是个人博客了,甚至用 WordPress 搭的(所以光看"有没有 CMS 指纹"判断不出来)。
手工一条条点开看,两万条评论要点一年。这个插件做三件事:看人还来不来 → 查域名现在是什么 → 只降级该降的。
安装
- 后台上传
wp-comment-guard-x.y.z.zip,启用 - 左侧菜单出现「外链守卫」→ 进「设置」按需调整(默认值基本可用)
- 进「外链体检」,点「连续扫描到完成」开始第一次体检
要求:WordPress 5.5+、PHP 7.4+、服务器能访问外网(要用 curl 抓域名首页)。
第一次使用:先扫描,别急着看结果
插件装上时体检表是空的,所有链接都按默认规则(只看往来时间)放行。要它开始判断"域名现在是什么",得先扫一遍。
扫描要多久? 取决于你有多少域名。实测约 2~4 秒/个(服务器并发抓取,一次 15 个):
| 考核池域名数 | 大致耗时 |
|---|---|
| 100 个 | 5 分钟 |
| 500 个 | 25 分钟 |
| 2000 个 | 2 小时 |
几点说明:
- 只扫「1 年没来往 ~ 5 年没来往」之间的域名。近一年还在留言的(人还在,站不太可能转手)不扫,超过 5 年没来往的也不扫(前台早按归档降级了,扫了白烧 CPU)。
- 点了「连续扫描」后页面会自己刷新推进,可以切到别的标签页,不会中断。白屏就刷新本页,进度在数据库里。
- 扫完之后,每小时还会自动复查一批到期的(7 天一轮),不用你管。
- 想快一点:把「每批扫描数量」调到 30~60(设置页),或者开本机抓取助手(见下)。
它怎么判断
判定按固定顺序走,前面命中就停,不再往下看:
| 顺序 | 检查 | 结果 |
|---|---|---|
| 1 | 站长手动加的白名单 | 放行 |
| 2 | 已知风险(博彩/色情/诈骗/域名待售)+ 黑名单 | 降级 |
| 3 | 死链(DNS 解析不了 / 404 / 410) | 降级 |
| 4 | 域名已成停靠页 / 待售页 | 降级 |
| 5 | 近 1 年还有往来 | 放行(也不进体检) |
| 6 | 超过 5 年没往来 | 归档降级 |
| 7 | 夹在中间的 · 已不是个人站 | 降级 |
| 8 | 其余 | 放行 |
「已不是个人站」的判定依据:标题是商业站点句式、标题自称公司/工作室/机构、标题里没有博客特征且不像人话。
两条铁律:
- 抓不到 ≠ 有问题。DNS 死了、403、超时、页面空白,一律不降级。看不清就不给结论。
- 实锤结论不会被网络波动洗白。一个域名一旦被判为风险,之后哪怕某次抓不到,结论仍然保留。
常见问题
问:改了设置 / 扫完了,前台还是没变化?
页面缓存。插件会自动清 WP Rocket、LiteSpeed Cache、W3 Total Cache、WP Super Cache、WP Fastest Cache 的缓存;如果你用的是别的缓存插件或 CDN,手动清一次。
问:为什么有些站的链接变成纯文本了,我点开看明明是正常的?
点开看的是"现在",判定用的是"我们数据库里的结论"。可能是:① 很久没体检了,结论过期;② 被页面标题误判。用后台的「域名速查」,粘域名进去就能看到它每一步被判成什么、为什么。觉得判错了,就点「加入白名单」。
问:某个域名一直显示"抓不到"?
可能是 IP 被对方防火墙拦、或者站点只对国内网络开放。用本机抓取助手:在你自己的电脑上跑一个小脚本,用它去抓、结果回传给插件。后台「外链体检 → 本机抓取助手」里有下载链接和一键脚本。
问:会不会误伤正常访客?
近一年来留过言的访客链接一律放行,不做任何体检判定。真正会被降级的只有两类:确实变成黄赌/诈骗/待售页的,和五年以上毫无来往的。
问:能只降级链接、保留评论吗?
本来就是这样。插件从不改数据库里的评论内容,只在前台渲染时替换标签。
问:支持多站点 / 子目录 / 中文域名吗?
支持。中文域名(Punycode 编码前)也能正常识别。
隐私与数据
- 所有检测结果只存在你自己的数据库里,不向任何第三方上报
- 运行时唯一的外部请求是抓取待检域名的首页(这是体检本身)
- 不收集访客 IP、不读取访客隐私信息
- 本机抓取助手用一次性令牌(32 位随机)通信,可随时在后台重置
卸载
停用:保留全部数据,前台退回"不做任何处理"(链接全部可点)。
删除插件:会清空体检表、黑名单/白名单、设置和定时任务。这一步不可逆 —— 两万个域名的体检结果重扫要好几个小时。只是想关掉的话,停用就够了。
更新
插件自带更新检查:设置页顶部有「检查更新」,插件列表的插件名下面也有。有新版本时按 WordPress 常规流程更新即可。
本插件没有提交到 WordPress 官方插件目录,更新提示来自作者自己的更新源;GitHub 仓库里的代码与发布包是同步的,也可以直接下载 Releases 里的 zip 手动覆盖升级(WordPress 会整目录替换,不会残留旧文件)。
更新日志
见 CHANGELOG.md。