WP Manifestindependent plugin directory
manifest / social / friendlink-apply

友链自助申请

wordpress博客友情链接自助申请插件

by 树洞笔记 · github.com/rugu443/friendlink-apply · website

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/rugu443/friendlink-apply/archive/refs/heads/main.zip

WordPress 友情链接自助申请插件

一个功能完整、安全可靠的 WordPress 友情链接自助申请插件,支持用户自助提交友情链接申请,管理员审核,自动发送邮件通知,回链检测等功能。

插件特点

  • 安全可靠:完善的 nonce 验证、权限检查、数据过滤和输出转义
  • 响应式设计:完美适配桌面端和移动端
  • 易于使用:支持短代码和页面模板两种方式
  • 高度可定制:支持自定义显示样式、表单标题和描述
  • 回链检测:自动检测对方网站是否添加了回链
  • 邮件通知:支持四种邮件模板自定义
  • 链接管理:独立的链接管理功能,支持启用、禁用、批量操作
  • 自动审批:可开启自动审批功能,符合条件的申请自动通过

功能特性

1. 后台管理界面

  • 独立的后台管理页面,可查看所有申请
  • 支持待审核、已通过、已拒绝三种状态管理
  • 一键通过、拒绝、删除申请
  • 支持拒绝时填写原因
  • 审核通过后自动添加到 WordPress 链接管理
  • 支持批量操作和搜索筛选
  • 申请详情弹窗查看

2. 链接管理

  • 独立的"所有链接"管理页面
  • 查看所有已添加的友情链接
  • 支持启用/禁用链接
  • 支持批量检测回链
  • 支持批量启用、禁用、删除链接
  • 支持编辑链接信息
  • 显示回链状态和响应时间

3. 前端申请表单

  • 使用短代码 [friendlink_apply_form] 即可在任意页面显示申请表单
  • 支持自定义表单标题和描述
  • 已登录用户自动获取邮箱,无需重复填写
  • 表单验证确保数据完整性
  • 美观的表单界面和加载状态提示

4. 一键获取网站信息

  • 根据网站地址自动获取网站标题、图标、描述等信息
  • 智能解析多种图标格式(favicon、apple-touch-icon 等)
  • 支持相对路径和绝对路径的图标 URL
  • 自动填充表单字段,提升用户体验

5. 邮件通知系统

  • 管理员通知邮件:用户提交申请后,自动发送邮件给管理员
  • 提交确认邮件:用户提交申请后,自动发送确认邮件给申请人
  • 审核通过邮件:审核通过后,自动发送通知邮件给申请人
  • 审核拒绝邮件:审核拒绝后,自动发送通知邮件给申请人(包含拒绝原因)

6. 友链展示功能

  • 支持在前端展示已通过的友情链接
  • 多种显示样式:卡片式、列表式、简约式
  • 可自定义显示数量和标题
  • 显示回链状态标识

7. 回链检测机制

插件采用多层次、全方位的回链检测策略,确保检测的准确性和兼容性:

检测方式一览

序号 检测方式 说明 适用场景
1 静态 HTML <a> 标签检测 解析页面 HTML,检查所有 <a> 标签的 href 属性 通用网站
2 Base64 编码 URL 解码检测 解码 Base64 编码的链接(如 golink= 参数) 使用加密跳转的网站
3 data-local-links 属性检测 解析 AeroCore 主题的本地友链数据(Base64 编码的 JSON) AeroCore 主题
4 AeroCore 动态链接 API 检测 通过 AJAX API (getLinkListLinks) 获取友链列表 AeroCore 主题

检测流程

┌─────────────────────────────────────────────────────────────┐
│                     回链检测流程                              │
├─────────────────────────────────────────────────────────────┤
│  1. 静态 HTML 检测                                           │
│     ├── 解析 <a> 标签                                        │
│     ├── 解码 Base64 编码链接                                  │
│     └── 解析 data-local-links 属性                           │
│                                                              │
│  2. 动态 API 检测(如果静态检测未找到)                         │
│     └── 调用 AeroCore API 获取友链列表                        │
│                                                              │
│  3. 返回检测结果                                              │
│     ├── has_backlink: 是否存在回链                            │
│     ├── response_time: 响应时间(毫秒)                        │
│     └── site_status: 网站状态(ok/client_error/server_error) │
└─────────────────────────────────────────────────────────────┘

功能特点

  • 自动检测:对方网站是否添加了回链
  • 手动重检:支持手动重新检测
  • 状态显示:显示检测状态和结果
  • 批量检测:支持批量检测所有友链
  • 响应时间:记录网站响应时长
  • 网站状态:检测网站是否可访问

8. 自动审批功能

  • 可开启自动审批,符合条件的申请自动通过
  • 自动添加到 WordPress 链接管理
  • 自动发送通知邮件

安装方法

  1. 将整个插件文件夹上传到 WordPress 的 /wp-content/plugins/ 目录
  2. 在 WordPress 后台"插件"菜单中激活"友链自助申请"插件
  3. 在"友链申请"菜单中配置插件设置

使用方法

方法一:使用页面模板(推荐)

  1. 在 WordPress 后台创建新页面
  2. 在右侧"页面属性"中选择"[Sotms]友链申请"模板
  3. 发布页面即可

方法二:使用短代码

在任意页面或文章中使用短代码:

[friendlink_apply_form]

自定义标题和描述:

[friendlink_apply_form title="申请友链" description="欢迎申请友情链接"]

后台管理

申请管理

  1. 进入"友链申请"菜单 → "申请列表"
  2. 查看"待审核"列表中的申请
  3. 点击"通过"或"拒绝"按钮审核申请
  4. 拒绝时可以填写拒绝原因
  5. 支持批量操作和搜索筛选

链接管理

  1. 进入"友链申请"菜单 → "所有链接"
  2. 查看所有已添加的友情链接
  3. 可以启用/禁用单个链接
  4. 支持批量检测回链
  5. 支持批量启用、禁用、删除链接
  6. 可以编辑链接信息

插件设置

  1. 进入"友链申请"菜单 → "插件设置"
  2. 自定义表单标题和描述
  3. 配置是否显示友链列表
  4. 配置是否显示回链状态
  5. 选择友链显示样式(卡片式/列表式/简约式)
  6. 开启/关闭自动审批功能

表单字段说明

字段 是否必填 说明
网站标题 申请网站的标题
网站地址 申请网站的 URL
网站图标 网站的 favicon 图标 URL
网站描述 网站的简要描述
邮箱地址 用于接收审核结果通知(已登录用户自动获取)

邮件模板变量

在邮件模板中可以使用以下变量:

变量 说明
{blog_name} 网站名称
{blog_url} 网站地址
{site_name} 申请网站标题
{site_url} 申请网站地址
{site_description} 申请网站描述
{email} 申请人邮箱
{reject_reason} 拒绝原因(仅拒绝邮件可用)

文件结构

friendlink-apply/
├── wp-friendlink-apply.php              # 插件主文件
├── page-template-friendlink-apply.php   # 页面模板
├── README.md                            # 说明文档
├── includes/
│   ├── class-admin.php                  # 后台管理类
│   ├── class-frontend.php               # 前端表单类
│   ├── class-email.php                  # 邮件发送类
│   ├── class-config.php                 # 配置管理类
│   └── class-backlink.php               # 回链检测类
├── templates/
│   ├── admin-applications.php           # 后台申请列表模板
│   ├── admin-links.php                  # 后台链接管理模板
│   ├── admin-frontend-settings.php      # 前台设置页面模板
│   ├── admin-help.php                   # 帮助页面模板
│   └── frontend-form.php                # 前端表单模板
└── assets/
    ├── css/
    │   ├── admin.css                    # 后台样式
    │   └── frontend.css                 # 前端样式
    └── js/
        ├── admin.js                     # 后台脚本
        └── frontend.js                  # 前端脚本

安全特性

  • Nonce 验证:所有 AJAX 请求都有 nonce 验证
  • 权限检查:管理操作使用 current_user_can() 检查权限
  • 输入过滤:使用 sanitize_text_field()esc_url_raw() 等函数过滤输入
  • 输出转义:模板使用 esc_html()esc_attr()esc_url() 转义输出
  • 数据库安全:使用 $wpdb->prepare() 预处理语句防止 SQL 注入

CSS 变量

插件使用 CSS 变量,方便主题自定义:

:root {
    --fl-primary: #667eea;
    --fl-success: #28a745;
    --fl-danger: #dc3545;
    --fl-warning: #fd7e14;
    --fl-text: #333;
    --fl-bg: #fff;
    --fl-radius: 8px;
    --fl-shadow: 0 2px 10px rgba(0,0,0,0.08);
    --fl-transition: all 0.3s ease;
}

更新日志

2.2.0

  • 新增独立的链接管理功能
  • 新增链接启用/禁用功能
  • 新增批量检测回链功能
  • 新增批量启用、禁用、删除链接功能
  • 新增链接编辑功能
  • 新增拒绝原因填写功能
  • 优化回链检测机制
  • 优化后台管理界面
  • 修复已知问题

2.0.0

  • 重构插件架构
  • 新增回链检测功能
  • 新增自动审批功能
  • 新增多种显示样式
  • 优化邮件通知系统
  • 修复安全问题

1.0.0

  • 初始版本发布
  • 支持友链申请、审核、邮件通知等核心功能

许可证

GPL v2 or later

支持

如有问题或建议,请访问插件主页或联系开发者。