大绵羊外链跳转插件 v1.4.0 更新(开源)

“这次不是小修,是一次认真的体检。”

1.3.5 上线之后,我以为可以消停一阵了。

结果没多久,评论区就来了:

「插件跟子比主题 8.9 冲突,建议修复」

子比主题这侧,一直是 天无神话 在负责适配维护。收到反馈我立马打开 QQ 把截图甩给他——

他回:「我子比都没更新呢,等 bug 修的差不多我才更新的。」

行,那就等。然后他就去肝了。

不知道过了多久,他说「啊?这就好了?」——然后发来一张插件后台的截图,顺手还把 GitHub 在线更新检测给做了,下一次就可以直接在wordpress插件里面更新啦

昨晚 23:32,他发消息过来:「你去下载新版,测试 7b2 有没有问题,这次是大改。」

我:「b2 更新了?」

他:「不是,插件更新了。」

我:「OK,我明天测。」

最后他补了一句:

「我修了一天,你个刁毛说明天测 🤯」

王先生当前心情

猫猫表情包已发出,测试已鸽,版本已上线。

大绵羊外链跳转插件 v1.4.0 更新(开源)

这次他一查发现问题不止一个——子比 8.9 的内部调整导致链接被处理两次、CSF 设置面板重复输出、用户详情模态框被绕过……于是 1.4.0 就不是”修一个 bug”这么简单了,是拿着显微镜把子比适配层从头到尾过了一遍。

大绵羊外链跳转插件1.3.5更新(开源)

大绵羊外链跳转插件(开源)

问题修复

“能被叫’严重’的,都是那种跑起来就能看出来不对劲的。”

修复子比主题下 CSF 设置面板重复输出两次的核心 BUG 后台设置面板莫名渲染两遍,这种视觉错误一眼就能发现,实际影响远比看起来大。

修复评论链接过滤器三方冲突(插件 + 子比原版 + 自定义版),链接被处理两次的问题 同一条外链经过三层过滤,最后生成的跳转 URL 套了又套。这次明确了优先级,各归各位。

修复用户详情模态框三方冲突,主题自定义版被绕过的问题 自定义版的弹窗逻辑被原版钩子覆盖,等于白写了。现在执行顺序对了。

修复 dmy_zib_get_user_details_data_modal 中 25 处 __() 国际化缺失

修复 dmy_zib_ajax_user_details_data_modal 中 1 处 __() 国际化缺失

大绵羊外链跳转插件 v1.4.0 更新(开源)

安全问题修复

“安全这件事,宁可多做一遍,不能少做一次。”

AJAX 接口 dmylink_ajax_convert 增加 Referer 校验,防止外部滥用 兼容 Nginx 缓存环境,不依赖 PHP 输出的 nonce——毕竟有缓存的站点 nonce 本来就容易失效。

用户输入全面清理 $_GET['a']$_REQUEST['id']$_POST['url']$_SERVER['HTTP_REFERER'] 全部过 wp_unslash() 加对应清理函数,不再裸用超全局变量。

子比主题适配增强

“适配这件事,做到’不冲突’只是及格,做到’无感知’才是满分。”

自动接管子比主题的「外链重定向」和「外链重定向鉴权」功能 运行时强制关闭子比相关选项,避免双重处理,不需要用户手动去后台关了。

后台设置面板新增子比主题冲突检测提示 如果检测到子比的外链功能还开着,会主动提示引导你关掉,省去排查时间。

移除子比主题的 the_content_nofollow 过滤器 避免文章外链被处理两次,nofollow 逻辑由插件自己接管。

所有 remove/add 操作移至 zib_require_end 钩子(优先级 99) 确保在主题和自定义函数注册完之后再执行,不抢跑不漏跑。

大绵羊外链跳转插件 v1.4.0 更新(开源)

产品优化

the_content 过滤器中重复 get_option() 调用优化,改为闭包 use 传入 每次过滤文章内容都调一次数据库,这件事本来就不该发生。

dmy_go_link() 新增第二参数 $link,支持纯链接模式dmy_zib_get_url_link 调用,链接处理更灵活。

rand() 替换为 wp_rand(),提升随机性质量 WordPress 生态里用 wp_rand() 是基本规范,这次补上了。

新增 GitHub Releases 自动更新检测,支持从 GitHub 一键升级 以后有新版本,后台会直接提示,不用再手动来博客刷新了。

大绵羊外链跳转插件 v1.4.0 更新(开源)

更新日志汇总

v1.4.0

🔴 严重问题修复:
✅ 修复子比主题下 CSF 设置面板重复输出两次的核心 BUG
✅ 修复评论链接过滤器三方冲突(插件+子比原版+自定义版),链接被处理两次的问题
✅ 修复用户详情模态框三方冲突,主题自定义版被绕过的问题
✅ 修复 dmy_zib_get_user_details_data_modal 中 25 处 __() 国际化缺失
✅ 修复 dmy_zib_ajax_user_details_data_modal 中 1 处 __() 国际化缺失

🟠 安全修复:
✅ AJAX 接口 dmylink_ajax_convert 增加 Referer 校验防止外部滥用(兼容 Nginx 缓存环境)
✅ 用户输入清理:$_GET['a']、$_REQUEST['id']、$_POST['url']、$_SERVER['HTTP_REFERER'] 均使用 wp_unslash() + 对应清理函数

🟡 子比主题适配增强:
✅ 自动接管子比主题的「外链重定向」和「外链重定向鉴权」功能,运行时强制关闭子比相关选项避免冲突
✅ 后台设置面板增加子比主题冲突检测提示,引导用户关闭子比外链重定向设置
✅ 移除子比主题的 the_content_nofollow 过滤器,避免文章外链被处理两次
✅ 所有 remove/add 操作移至 zib_require_end 钩子(优先级99),确保在主题和自定义函数注册之后执行

🟢 优化:
✅ the_content 过滤器中重复 get_option() 调用优化,改为闭包 use 传入
✅ dmy_go_link() 新增第二参数 $link,支持纯链接模式(供 dmy_zib_get_url_link 调用)
✅ rand() 替换为 wp_rand(),提升随机性质量
✅ 新增 GitHub Releases 自动更新检测,支持从 GitHub 一键升级

ED

「一个 bug 反馈,拆出来是一串问题;一串问题修完,插件结实了一圈。」

感谢 小蔡蔡 的反馈,感谢 天无神话 把子比侧翻了个底朝天重新梳理了一遍——修了一天,属实不易。

大绵羊外链跳转插件 v1.4.0 更新(开源)

下一话……老规矩,评论区见。

参考链接

https://github.com/dmmyblog/dmy-link

共同开发 https://wxsnote.cn

下载权限
查看
  • 免费下载
    评论并刷新后下载
    登录后下载
  • {{attr.name}}:
您当前的等级为
登录后免费下载登录 小黑屋反思中,不准下载! 评论后刷新页面下载评论 支付以后下载 请先登录 您今天的下载次数(次)用完了,请明天再来 支付积分以后下载立即支付 支付以后下载立即支付 您当前的用户组不允许下载升级会员
您已获得下载权限 您可以每天下载资源次,今日剩余

给TA给糖
共{{data.count}}人
人已给糖
WordPress经验分享

破壁行动:救救被困在内置浏览器里的用户

2025-9-21 19:29:34

经验分享

2分钟搭建一个AList网盘系统

2023-1-31 19:34:52

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧