开发者反对 WordPress 7.2 默认开启 /random/ 随机文章端点

 内容管家 2026年11月9日 5 0 0

WordPress 7.2 计划于 12 月 8 日发布,其中一项新特性会把访客随机送往站点上的一篇已发布文章,但「默认开启」这一设定在开发者圈子里迅速引爆了反对声。独立核心提交者 Aaron Jorbin 于 11 月 5 日在 Make…

WordPress 7.2 计划于 12 月 8 日发布,其中一项新特性会把访客随机送往站点上的一篇已发布文章,但「默认开启」这一设定在开发者圈子里迅速引爆了反对声。独立核心提交者 Aaron Jorbin 于 11 月 5 日在 Make WordPress Core 博客上宣布了 `/random/` 端点,文章目前已积累 90 条评论,其中绝大多数是批评。

这个功能具体做了什么

  • 访问 example.com/random/,会跳转到站点上一篇随机选中的已发布文章。
  • 支持归档路径:/random/category/release/ 跳到该分类下的随机文章,/random/author/jorbin/ 跳到某位作者的随机文章。
  • 自定义文章类型默认包含在内,前提是它「可公开查询」且带有归档;页面(pages)和附件(attachments)不在范围内。
  • 管理后台里没有关闭开关,开发者只能通过 filter 禁用整套功能。

Jorbin 在评论里写道:「如果你有正当理由不希望站点支持这个功能,或者你单纯就是讨厌乐趣,那有一个 filter 可以把这个功能整体关掉。」他在领英上补充:「每隔几个 WordPress 版本,我就会暂停维护工作、去做一个新功能。WordPress 7.2 这个功能,就是彻彻底底的随机。」

反对的核心:默认开启,绕过了 opt-in 机制

独立开发者 Sibin Grasic 抱怨:「现在我得为 200 多个站点推一个 mu-plugin 来关掉这个『功能』。谁提出的?为什么会进核心?为什么默认开启?」 Yoast 创始人 Joost de Valk 表示他理解这个功能的趣味性,但认为默认打开是「一个糟糕的主意」。他的理由是:很多站点会用自定义文章类型存放「私密」内容——之所以没被索引,只是因为没有任何链接指向它们,而 WordPress 核心并没有提供标记「不可被发现」文章的标准方式。

「如果核心里有 noindex,我们就能用它把这些文章排除在随机发现之外。现在我担心人们会随机落到发票、报价单、客户专属页面之类的内容上。」

Jorbin 的回应是,站点所有者可以用 pre_get_posts filter 把内容从随机端点中剔除。他还解释,WordPress 的理念决定了不会给每个功能都加 opt-out 设置,「否则设置页面就没法用了」。

The Code Company 董事总经理 Ben May 的反对点更偏向流程:当贡献者提出新功能时,标准答案几乎总是「先做成功能插件,收集数据、证明需求、做成可选启用」;但这次「整个治理流程似乎被绕过,换成了一个直接烘焙进核心的默认开启设置」。

性能争议:MySQL 的 ORDER BY RAND

Human Made 产品总监 Ryan McCue 质疑该功能在大站点上的可扩展性:

「ORDER BY RAND 在 MySQL 里以慢著称,因为它是关于表中行数的 O(N)——慢到有些主机直接禁止使用它。」

他还指出,机器人反复访问 /random/「可能是一种轻松的 DoS 站点的方式」。

WP Staging 创始人 Rene Hermenau 做了比工单基准更大的测试(工单里的基准上限是 20 万篇文章):随机查询的耗时随文章数量同步增长,200 万篇文章的站点上单次请求接近 2 秒,20 个并发请求则需要 14 秒完成。他说明测试环境搭建和计时由 Claude Code 执行,方法与结果由他本人复核。

争论的另一条线:这功能该不该进核心

这个特性的起点是 1 月由 Automattic 架构与开源总监 Anne McCarthy 开启的 Trac 工单,她提议「讨论一个精简的、可选启用的核心实现是否应该存在」。McCarthy 说明,WordPress 联合创始人 Matt Mullenweg 曾希望为 WordPress 7.0 考虑这个功能,依据是他自己的 Random Redirect 插件——该插件目前有 100 多个活跃安装,最后一次更新已是 18 年前。

当核心提交者 John Blackbourn 在工单中质疑该功能是否符合 WordPress 的「80% 规则」时,McCarthy 回复:「正如问题描述中提到的,@matt 要求把它放进核心。这就是它被加入的原因,也是它没有走规范插件路线的原因。是他明确提出的(多次)。」 Jorbin 对「是否属于核心」的回应是:「我认为大多数人希望自己的内容被发现,所以是的,这应该对大多数人有用。」 Mullenweg 则在周六加入了评论,针对 getButterfly 所有人 Ciprian Popescu 提出的性能与暴露风险回应道:

「请用手写,不要用 AI。也可以问问你的 AI:这是否比人们无意中在站点地图和 REST API 里暴露的内容更糟?这条查询是否比通过 ?s= 提交大量随机搜索字符串构成更大的资源耗尽向量?」

不过他也认为这个功能应该比现在的实现更简单:「它其实不算一个页面,也不是永久性资源。我不认为这应该做成附加的漂亮 URL;当初的需求只是根路径上的 /?random。」同一条评论中,他把这串讨论形容为「招来了那帮爱发牢骚的 WP 受虐狂群体」——此前该话题被链接到 X 上。

需要留意的是,到目前为止这条线只停留在论坛与博客讨论层面:/random/ 是否会改为根路径形式、是否随发布形态调整,都还没有最终定论,7.2 的正式发布日为 12 月 8 日。

在测试阶段,/random/ 端点又暴露出两个容易踩坑的细节:已有 slug 为 random 的页面会「抢先」命中新路由;跨域场景下缺少 no-cache / noindex 响应头,可能让所有访客反复看到同一篇文章。

测试阶段暴露的两个问题

已有 random 页面会优先命中

由 Fueled 赞助的 WordPress 核心提交者 Peter Wilson 确认:如果站点中已经存在 slug 为 random 的页面,它会排在新的重定向规则之前。换句话说,新功能不会自动接管旧页面,想用起来就只能先去「设置 → 固定链接」把随机基址(random base)改掉。

跨域固定链接会漏掉缓存头

Hermenau 还发现另一种情况:当被随机抽中的文章其固定链接指向另一个域名时,实际被送到访客面前的是那个域名上的页面,而不是重定向本身。重定向响应带有 no-cache 和 noindex 头,但那条跨域页面并不带,结果页面缓存可能把同一篇文章缓存下来,反复呈现给每一位访客。

Jorbin 认为这听起来是个值得修掉的 bug,Hermenau 已经提交了带补丁的工单。

社区争论:这功能到底该不该默认开启

社区对「要不要默认开启」的分歧明显,WordPress 核心至今未表态。X 上,WebDevStudios CEO Brad Williams 抛出了「这是不是个好主意」的追问,多数回复偏负面,其中包括 Siren Affiliates 创始人 Alex Standiford 认为这属于「插件该干的活」。

Cloudflare 高级产品经理 Matt “TK” Taylor(负责 EmDash,他称之为「WordPress 的精神继承者」)也顺势补了一刀:

「EmDash 不会为了好玩加一个你还得手动退出的 /random 端点。它是个严肃的 CMS。」

支持方的理由则集中在「难做但有用」上:

  • Awesome Motive CEO Syed Balkhi:多年前在 WPBeginner 上做过类似功能,「因为缓存之类的原因,构建起来相当折腾」,如今进入核心他很高兴。
  • CodePen 联合创始人 Chris Coyier:自己站点上用了很多年,「挺有意思的。而且它比你想的更难搞,因为缓存™(Because Of Caching™),所以这次放在核心里说不定真能跑通」。
  • Wordfence 创始人 Mark Maunder:明确支持默认开启——「把 /random 放进 WP 核心的提议就是 Unpagerank。把那些自 Google 把平等的网络变成等级分明的僵尸狂欢之后,就一直被压制的长尾内容重新抬起来。默认开启。」

影响与建议

默认行为仍未定。 Jorbin 尚未说明最终发布前是否会调整默认设置,也就是说默认开启还是默认关闭,目前都还有变数。

不想用的站点可以自行关掉。 在 mu-plugin 中加入:

add_filter( 'wp_enable_random_content_redirect', '__return_false' );
这会移除随机内容的重写规则,同时隐藏「设置 → 固定链接」页面上的随机基址输入项。
**升级前建议自查三件事:**
1. 站点中是否已存在 slug 为 `random` 的页面(会抢先命中,导致新功能「看起来没生效」);
2. 是否有文章使用跨域固定链接(可能缺失 no-cache / noindex 头);
3. 页面缓存策略是否会把随机结果缓存住(表现为「每次刷新都是同一篇」)。
**时间表:** WordPress 7.2 Beta 5 定于 11 月 10 日,RC1 在 11 月 17 日,正式版计划于 [12 月 8 日](https://make.wordpress.org/core/2026/10/06/wordpress-7-2-release-party-schedule) 发布。

延伸阅读

![Patchstack advertisement.](https://wpbetter.cn/wp-content/uploads/2026/06/imported-image-49.webp)

声明:1、本站大部分内容均为网络采集或AI生成所得,会尽量做好标注,但仍需注意自行判断和辨别内容的真实性与准确性。2、所有标注了“原创”的内容和产品均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。3、如若本站内容侵犯了原著者的合法权益,请携带相关版权证明文件联系我们进行下架或删除。

 标签:WordPress

内容管家

基于 AI 自动化工作流的发文助手~ 由 Actions Bridge 插件驱动
1.68k文章
0评论
10w+浏览
1点赞
作者主页

留下第一个评论