Post

【友链自助提交插件】介绍

本文档面向 Halo 站点管理员和主题使用者,介绍“友链自助提交插件”的核心功能、典型配置方式和完整使用流程。 插件目标很直接:让访客可以在前台自助提交或修改友链,站长在后台集中审核,并通过验证码、评论门槛、反链校验、邮件通知和定时维护,减少重复沟通和人工检查。说白了,就是别再让“交换友链”变成私信、邮件、评论区到处乱飞的手工作坊。

Halo插件 阅读 4 点赞 0 评论 1

友链自助提交插件功能介绍与使用教程

本文档面向 Halo 站点管理员和主题使用者,介绍“友链自助提交插件”的核心功能、典型配置方式和完整使用流程。 插件目标很直接:让访客可以在前台自助提交或修改友链,站长在后台集中审核,并通过验证码、评论门槛、反链校验、邮件通知和定时维护,减少重复沟通和人工检查。说白了,就是别再让“交换友链”变成私信、邮件、评论区到处乱飞的手工作坊。

功能体验

地址

账号/密码

管理端

demo/demo123.

适用信息

项目

说明

插件名称

友链自助提交插件

插件标识

LinksSubmit

适用系统

Halo >= 2.24.0

依赖插件

LywqPluginCore >= 2.3.0

主要用途

前台友链自助提交、后台审核、自动校验、通知和友链维护

用户入口

独立页面、页面内嵌提交框、弹窗按钮、悬浮按钮

管理入口

Halo 控制台 → 工具 → 友链自助提交管理

功能总览

插件的完整流程可以分成四段:

  1. 访客在友链页面提交新增或修改申请。

  2. 插件执行授权、限流、验证码、评论数、URL、邮箱和反链等校验。

  3. 按配置决定“直接入库”还是“进入待审核”。

  4. 创建 Halo 原生友链、删除旧链接、发送通知,或等待管理员处理。

核心功能介绍

1. 基础设置

基础设置决定插件是否能安全、顺畅地对外开放。

功能

作用

认证 token

前台请求会携带 Authorization,用于防止接口裸奔

站点信息

显示在提交框头部,可写本站名称、地址、描述等

验证码类型

支持图形验证码和邮箱验证码

挂载位置

支持页面内容之前、页面内容之后、自定义占位

自动审核

开启后,满足规则的申请可直接写入 Halo 友链

友链校验

校验对方友链页是否已添加本站链接

Chinaz 兜底校验

直连检测失败时,可尝试第三方兜底检测

评论数限制

要求提交者在本站已审核评论数达到指定数量

邮件通知

新申请、审核结果、验证码等可通过通知系统发送

默认友链分组

访客未选择分组时使用的默认分组

禁止选择分组

前台提交页面不展示这些分组

提交成功跳转

提交完成后跳转到指定页面,例如 /links

建议新站先使用“人工审核 + 图形验证码 + 默认分组”的保守配置。站点稳定后,再考虑开启自动审核和反链校验。

2. 前台自助提交表单

前台表单支持两种提交类型:

提交类型

说明

新增友链

用于第一次申请交换友链

修改友链

用于已有友链变更名称、域名、图标、描述、RSS 等信息

表单字段包括:

字段

是否常用

说明

网站名称

必填

展示在 Halo 友链中的名称

网站地址

必填

仅支持 http / https

原网站地址

修改时必填

用于定位旧友链记录

网站图标

选填

可手动填写,也可由插件尝试获取

友链分组

选填

来自 Halo 友链分组

友链页面

开启反链校验时必填

对方展示本站链接的页面

RSS 地址

选填

用于朋友圈或主题扩展读取

网站描述

选填

友链简介

邮箱地址

表单中必填

用于验证码、审核结果通知和修改身份确认

验证码

必填

图形验证码或邮箱验证码

表单还提供“获取网站信息”能力。访客填写网站地址后,点击获取按钮,插件会抓取页面标题、description、favicon 或 og:image,自动填充网站名称、描述和图标。

3. 自动审核、反链校验与风控

插件不是“收到就放行”,它有一套审核策略:

配置状态

结果

自动审核关闭

申请进入后台待审核

自动审核开启,反链校验关闭

基础校验通过后直接创建正式友链

自动审核开启,反链校验开启,反链通过

直接创建正式友链

自动审核开启,反链校验开启,反链失败

进入后台待审核

额外限制:

  • 提交本站自己的地址会被拒绝。

  • 网站地址、图标地址、友链页面地址、RSS 地址都要符合 URL 格式。

  • 邮箱格式不正确会被拒绝。

  • 如果设置了评论数门槛,提交者已审核评论数不足会被拒绝。

  • submitsendVerifyCodecaptchalinkDetail 等高频接口按 IP 限流,默认每 60 秒 3 次。

  • 邮箱验证码和图形验证码有效期均为 5 分钟。

Chinaz 兜底校验默认关闭。它依赖第三方服务,可能遇到超时或限流;开启后只有直连校验失败时才会尝试。

4. 后台提交记录管理

后台菜单位置:

Halo 控制台 → 工具 → 友链自助提交管理

提交记录列表展示:

信息

说明

提交类型

新增或修改

网站信息

网站图标、名称、申请邮箱

链接地址

新链接;修改申请会额外显示原链接

描述

申请人填写的网站描述

分组

目标友链分组

状态

是否已通过反链等验证

申请时间

申请记录创建时间

操作

审核或删除

“删除”会直接移除待审核记录,不会创建正式友链。

5. 审核弹窗

管理员点击“审核”后,可以选择:

操作

结果

通过

将待审核记录写入 Halo 正式友链,并删除待审核记录

不通过 + 不通知

删除待审核记录

不通过 + 发送通知

发送自定义审核说明邮件后删除待审核记录

修改申请的特殊逻辑:

  • 如果原友链记录绑定了邮箱,并且提交邮箱一致,插件允许直接更新。

  • 如果邮箱缺失或不一致,修改申请会进入后台审核。

  • 审核通过修改申请后,插件会先创建新链接,再删除旧链接。

6. 通知与验证码

插件接入 Halo 通知系统,内置以下通知类型:

通知类型

接收人

场景

新提交通知

管理员

有新的友链新增申请

修改通知

管理员

友链信息被直接修改

审核通过通知

申请人

管理员审核通过

邮箱验证码

申请人

使用邮箱验证码提交

自定义通知

申请人

审核不通过时发送原因

要让管理员收到提醒,需要在基础设置中开启“是否发送邮件通知”,并填写管理员邮箱。

7. 展示形式与外观定制

高级设置提供两种展示方式:

展示方式

适合场景

页面内嵌

友链页面中直接展示完整提交框

弹窗形式

页面上只显示按钮,点击后弹出提交框

弹窗模式还支持悬浮按钮:

悬浮按钮模式

说明

关闭

不显示悬浮按钮

全局页面

全站显示悬浮按钮

指定页面

只在指定独立页面显示悬浮按钮

可定制项包括:

  • 提交框尺寸 boxBaseSize

  • 头部 DIY HTML

  • 弹窗按钮 HTML

  • 悬浮按钮 HTML

  • 默认模板或自定义模板入口

  • 日间模式颜色

  • 夜间模式颜色

  • 自定义 CSS:追加或覆盖

  • 自定义 JS:追加

  • 主题兼容模式

注意:完全自定义模板对主题和脚本结构要求更高,建议先在测试页面验证再放到正式页面。别一上来就拿生产站硬怼,出问题还得半夜救火。

8. 页面挂载与编辑器占位

插件通过独立页面注解识别哪个页面是“友链自助提交页面”。

启用方式:

  1. 进入 Halo 控制台。

  2. 打开目标独立页面。

  3. 开启“友链自助提交页面”开关。

  4. 根据基础设置中的“挂载位置”渲染提交框。

挂载位置说明:

挂载位置

效果

页面内容之前

提交框显示在页面正文前

页面内容之后

提交框显示在页面正文后

自定义位置

需要在编辑器中插入“友链自助提交框”

默认编辑器中会出现“友链自助提交框”工具项。插入后页面内容里会存在:

<links-submit-html></links-submit-html>

页面渲染时,插件会把这个占位替换成真实提交框。同一个页面只能插入一个提交框,占位多了也只会渲染一次,别整套娃。

9. 定时清理与友链关系维护

插件提供两个自动维护任务:

任务

检查内容

可执行动作

定时清理无效友链

友链站点是否可访问

关闭、删除、移动分组

定时校验友链关系

对方是否仍然链接本站

关闭、删除、移动分组

定时表达式内置选项:

  • 每 1 分钟执行一次

  • 每 12 小时执行一次

  • 每天 0 点执行一次

移动模式比删除模式更稳妥。插件移动友链前会记录原分组 originalGroupName,如果后续检测到站点恢复可访问,或对方重新添加本站链接,插件会尝试把友链恢复到原分组。

可以配置免校验分组,例如“合作伙伴”“长期保留”等分组不参与自动清理。

10. 兼容扩展与元数据

插件会把部分提交信息写入 Halo 友链元数据:

元数据

来源

用途

email

提交邮箱

审核通知、修改身份判断

linkPageUrl

友链页面

反链校验和定时互链检查

rssUrl

RSS 地址

主题或扩展读取

rss_uri

RSS 地址

开启朋友圈兼容时写入

自定义 key/value

高级设置

给主题模板或其他扩展使用

高级设置中的“是否兼容朋友圈”开启后,会额外写入 rss_uri。如果主题模板需要特殊字段,可以通过“自定义元数据”补充。

完整使用教程

第一步:安装插件

  1. 确认 Halo 版本不低于 2.24.0

  2. 安装并启用 LywqPluginCore >= 2.3.0

  3. 安装并启用“友链自助提交插件”。

  4. 确认插件授权状态正常。

如果插件未获取授权,相关接口会返回未授权提示,前台提交也无法正常使用。

第二步:配置基础设置

建议按下面顺序配置:

  1. 生成一个 32 位左右的 authToken

  2. 填写站点信息,例如站名、站点地址、描述、头像等。

  3. 选择验证码类型:

    • 新站推荐图形验证码,配置简单。

    • 已配置邮件通知系统时,可以使用邮箱验证码。

  4. 选择挂载位置:

    • 想省事:选择“页面内容之后”。

    • 想精准控制位置:选择“自定义位置”。

  5. 选择默认友链分组。

  6. 配置禁止自助提交的分组。

  7. 填写提交成功后跳转页面,例如 /links

  8. 如果需要通知管理员,开启邮件通知并填写管理员邮箱。

第三步:创建或选择友链提交页面

  1. 新建一个独立页面,例如“友链”或“交换友链”。

  2. 在页面设置中开启“友链自助提交页面”。

  3. 如果基础设置选择“自定义位置”,在编辑器中插入“友链自助提交框”。

  4. 发布页面。

  5. 打开前台页面确认提交框正常显示。

如果主题没有正确加载提交框样式或脚本,可以尝试开启高级设置里的“兼容主题模板”。

第四步:选择展示方式

如果希望用户打开页面就看到表单:

  1. 高级设置 → 提交框展示形式 → 页面内嵌形式。

  2. 配置头部 DIY 内容。

  3. 调整颜色和尺寸。

如果希望页面更简洁:

  1. 高级设置 → 提交框展示形式 → 弹窗形式。

  2. 填写弹窗按钮代码。

  3. 可选开启悬浮按钮。

  4. 选择全局页面或指定页面。

第五步:配置审核策略

保守方案:

  1. 关闭自动审核。

  2. 开启验证码。

  3. 根据社区情况设置评论数门槛。

  4. 管理员手动审核所有申请。

自动化方案:

  1. 开启自动审核。

  2. 开启友链校验。

  3. 要求申请人填写友链页面。

  4. 只有检测到对方页面已添加本站链接时才自动通过。

如果你的站点经常遇到请求对方站点超时,可以考虑开启 Chinaz 兜底校验,但不要把它当成绝对可靠的裁判。

第六步:访客提交友链

访客操作流程:

  1. 打开友链页面。

  2. 选择“新增友链”或“修改友链”。

  3. 填写网站名称、网站地址、邮箱等信息。

  4. 可点击获取按钮自动填充站点标题、描述和图标。

  5. 如果开启反链校验,填写对方的友链页面地址。

  6. 输入验证码。

  7. 点击提交。

提交成功后,插件会显示提示,并按配置跳转到指定页面。

第七步:管理员审核申请

  1. 进入 Halo 控制台 → 工具 → 友链自助提交管理。

  2. 查看提交记录列表。

  3. 点击“审核”。

  4. 选择“通过”或“不通过”。

  5. 不通过时,可选择是否发送通知邮件。

  6. 点击确认提交。

审核通过后,申请会被写入 Halo 原生友链。审核不通过时,待审核记录会被删除。

第八步:配置定时维护

如果站点友链较多,建议启用移动模式:

  1. 创建“无效友链”分组。

  2. 创建“友链异常”分组。

  3. 定时清理无效友链选择“移动”。

  4. 定时校验友链关系选择“移动”。

  5. 配置免校验分组。

  6. 选择每天 0 点或每 12 小时执行一次。

不建议一开始就配置“删除”。自动化删除很爽,但误伤起来也是真疼。

第九步:做外观定制

按风险从低到高排序:

  1. 调整明暗模式颜色。

  2. 调整提交框尺寸。

  3. 修改头部 DIY HTML。

  4. 追加 CSS。

  5. 追加 JS。

  6. 使用完全自定义模板。

如果只是改颜色和间距,优先用内置颜色配置。只有内置配置不够时,再追加 CSS。

推荐配置方案

小型个人博客

配置项

推荐值

自动审核

关闭

友链校验

关闭或开启

验证码

图形验证码

评论数门槛

0

提交方式

页面内嵌

定时维护

关闭或移动模式

开放式社区站点

配置项

推荐值

自动审核

开启

友链校验

开启

验证码

邮箱验证码

评论数门槛

按社区要求设置

邮件通知

开启

定时维护

移动模式

对外观要求较高的主题站

配置项

推荐值

展示形式

弹窗或自定义位置

主题兼容模式

仅在样式或脚本异常时开启

颜色配置

使用明暗模式颜色变量

自定义 CSS

追加模式优先

自定义模板

测试通过后再用于正式页面

常见问题

前台提交框没有显示怎么办?

检查以下几项:

  1. 独立页面是否开启“友链自助提交页面”。

  2. 插件是否启用并授权正常。

  3. 挂载位置是否设置为自定义但没有插入占位。

  4. 主题是否拦截或延迟加载了插件资源。

  5. 尝试开启“兼容主题模板”。

提示验证码错误怎么办?

可能原因:

  1. 验证码已超过 5 分钟。

  2. 图形验证码大小写或字符输入错误。

  3. 邮箱验证码发送到旧邮箱或垃圾箱。

  4. 操作过快触发限流。

为什么提交后没有直接通过?

检查:

  1. 是否开启自动审核。

  2. 是否开启友链校验。

  3. 对方友链页面是否填写。

  4. 对方友链页面是否真的包含本站链接。

  5. 提交者评论数是否达到门槛。

修改友链为什么还要审核?

只有原友链记录中保存了邮箱,并且提交时填写的邮箱与原邮箱一致,才允许直接更新。否则插件无法确认申请人就是原站点负责人,会进入人工审核。

定时维护会不会误删友链?

如果选择“删除”,确实有误删风险,比如对方站点临时宕机或网络超时。更推荐选择“移动”,把异常友链移动到指定分组,恢复后插件还能尝试移回原分组。

功能边界

插件当前主要解决“友链申请、审核、通知、校验、维护”这一条链路,不负责:

  • 自动判断对方站点质量。

  • 自动生成友情链接页面内容。

  • 替代 Halo 原生友链管理。

  • 保证第三方兜底校验永远可用。

  • 保证所有主题都无需调样式即可完美显示。

换句话说,它能把流程自动化,但不能替站长做价值判断。友链该不该加,最后还得人脑拍板,机器别背这个锅。

继续阅读

全部归档

评论

友链提交
请认真填写以下信息,谢谢!
(请填写完整的网址,例如:https://www.example.com)
(贵站展示本站链接的页面地址,一般是友链页面,填写后将自动验证友链关系有效性)
(用于抓取文章)
(用于接收通知)