两周前,我同时投出去了两个东西。
一个是我自己开发的 WordPress 主题 paddy-newsprint,提交到了 WordPress 官方主题市场,ticket 编号 #292433。
另一个是我在自部署 Bifrost 时遇到的一个恶性 bug,整理了一下提了个 PR。
两周后,两个都有了结果。一个把我气炸了,一个让我稍微好受了一点。
WordPress:排队一周,拒绝只需一秒
先说 WordPress 那个。
提交之后的第一天,状态是 new。第二天,还是 new。第三天……我开始理解为什么有人说 WordPress 主题审核是玄学。大概过了整整一周,状态终于变成了 reviewing——我甚至有点感动,觉得自己的东西终于被人看见。
然后就是每天上去刷新,像等高考成绩一样。我想,审核员会有什么意见呢?命名规范有问题?安全校验没过?我随时可以改。
什么都没有。
昨天晚上点开一看,状态变成了 closed。被拒了。
审核意见列了五条,最后加了一句 “possibly more issues” 和一个 “Thank you”。我盯着屏幕看了半天,气笑出声。
让我们一条一条来看怼。
第一条:Theme URI 404
The theme URI is optional. If used, it must be about the theme we’re hosting on WordPress.org. The current theme URI page shows a “page not found” error.
这条我认。做站点迁移的时候把主题介绍页搞丢了,确实是我的锅。没什么好说的。
但我还是忍不住想:你都还没通过审核,我上哪给你整个 WordPress.org 上的主题页去?当然,这是鸡生蛋的问题,规矩就是规矩——我可以接受。
第二条:不允许自定义主题选项面板
Custom theme options panels are not allowed. Theme configuration should be handled through the WordPress Customizer in line with repository guidelines.
这可能是核心矛盾。
说真的,我之所以自己做了个主题选项面板,就是因为我觉得市面上所有主题的 Customizer 都难用到令人发指。层级混乱、预览延迟、找一个设置要翻三层面板——作为用户我忍了很多年,作为开发者我不想再忍了。
我翻了一下官方的 主题审核手册,在第 12 节 “Theme settings pages and onboarding” 里其实写的是 “Themes may optionally add custom sub-pages under Appearance in the WordPress admin.”——也就是说,自定义管理页面本身是允许的,条件是使用 WordPress 原生 UI 元素。
但审核员的意思很明确:不管你做得好不好用,你就得用 Customizer。
这不是技术问题,这是话语权的问题。
第三条:LLMs 和广告设置属于插件领域
LLMs and advertisement settings fall under the plugin territory. Please remove it from the theme or move it to a companion plugin.
看到这条我真的笑了。
LLMs 是给我的 AI 读者看的好吗?(好吧,我承认我有点媚AI了)这完全是前端展示的一部分——怎么就成插件功能了?
至于广告位——我做广告位是预备用来给我自己开发的主题做宣传的。而且说真的,广告位置和排版深度绑定,插件怎么保证图片不会插到奇怪的地方?怎么保证在每个主题里都长得一样?
官方手册里列的 “plugin territory” 例子是:Analytics、SEO options、Contact forms、Social media buttons——这些我都理解。但 “广告位” 和 “LLM 摘要输出” 什么时候也成插件专属了?
边界越来越模糊,解释权永远在审核员手里。
第四条:Skip to content 链接聚焦时可见
The skip to content link is visible when in focus.
……这条我甚至都不想评论。这是 accessibility 基本要求,我做了,它就是可见的。你倒是说清楚哪里不对啊?”visible when in focus” 不是它应该有的样子吗?
算了,可能我理解错了。但连一句具体说明都没有,就扔这么一句过来。
第五条:readme.txt 必须全英文,所有 PHP 字符串必须国际化
Please ensure the readme.txt is written entirely in English, including the theme description and all other documentation. Additionally, please add all user-facing text strings in the PHP files in English and must be internationalized and wrapped in the appropriate translation functions to make the theme translation-ready.
这是最让我生气的一条。
我花了多长时间搞国际化你知道吗?每个字符串都包了 __() 和 _e(),text-domain 一丝不苟——结果你告诉我 “必须完全用英文编写”?
英文才叫国际化是吧?
官方手册第 8 节 “Language & internationalization” 里只写了 “All text strings must be translatable using gettext”——所有文本字符串必须可翻译。可没说必须是英文。
但潜规则就是这样。整个 WordPress 生态的默认语言是英语,翻译系统以英语为基准,审核以英语为准。你用中文写的 readme,哪怕做了再完整的国际化,也是不合格的。
这不是技术要求,这是英语霸权。
最气人的不是被拒,是连沟通的渠道都没有
五条意见,最后加一句 “possibly more issues”。
意思是:我就说了这五条,可能还有别的,但我懒得说了。你自己猜。
更离谱的是,ticket 一关,你连回复的地方都没有。要重新提交,重新排队,再等一周甚至更久。
我查了一下数据——截至 2026 年 6 月,WordPress 主题审核团队一共只有 15 个人。而过去 7 天里,他们处理了 1027 个 ticket,其中只有 37 个是新主题,剩下的 969 个都是主题更新。1
15 个人,每周一千多 ticket。
你说他们能仔细看吗?不可能的。好吧确实挺辛苦的
手册里甚至写得明明白白:”Themes that have 3 or more distinct issues may be closed as not-approved.”——有三个以上不同的问题就可以直接关闭。2
所以流程就是:快速扫一遍,凑够三条,关掉,下一个。某种意义上的高考阅卷
我理解他们忙,我理解人力不够。但理解不代表我不生气。
Bifrost:另一种等待
然后说 Bifrost 那个 PR。
同样是两周前,我部署的时候遇到了一个严重的 bug,查了半天,最后定位到了问题所在,改了代码,提了 PR。
然后就没动静了。
没被 merge,也没人回复。我甚至怀疑开发者根本没看过。
但昨天我收到了通知——有人在 PR 下面评论了。不是开发者,是另一个自部署的用户。他说他也遇到了完全一样的问题,确认我的修复有效,推荐 merge。
看到那条评论的时候,我心里有一种很复杂的感觉。
它没有被官方接受,但它被人看见了。有人用了,有人验证了,有人说了一句 “这个是对的”。
Bifrost 目前有 659 个开放的 PR。659 个。我的那个混在里面,可能永远也不会被 merge。
但那又怎么样呢?至少我知道有人因为它省了几个小时的调试时间(😓可能找到我那条PR就需要几个小时)。至少有一个陌生人,隔着半个互联网看到了,我就爽了。
英语霸权与小开发者的无力感
把这两件事放在一起看,其实是同一个问题的两个侧面。
WordPress 那边是”英语世界的官方审核”——规则用英语写,沟通用英语,默认语言是英语,你英语不好连被拒的理由都读不利索。
Bifrost 这边是开源社区的常态——项目用英语开发,issue 用英语写,PR 用英语描述,你想贡献代码,先得过了英语这关。
我不是说英语不好,也不是说不该学英语。我自己也在学。
但我越来越觉得,”好好学英文” 这句话的背后,藏着一种很现实的无力感。你想参与这个游戏,你就得接受游戏规则,而规则是用英语写的。
而且这个游戏现在变得越来越拥挤了。
AI 时代的审核危机
最近有个词很火:”AI slop”——AI 泔水。
不是说 AI 生成的代码都是垃圾,而是 AI 把”提交”的成本降到了几乎为零。一个人一天可以生成十个 PR、二十个 issue,它们看起来像模像样,但真正有价值的可能一个都没有。
GitHub 的 Octoverse 2025 报告说,2025 年开发者每月合并近 4500 万个 PR,同比增长 23%。3 PR 越来越多,维护者的时间却没变多。
curl 的维护者 Daniel Stenberg 抱怨说,到 2025 年年中,curl 漏洞赏金计划里约 20% 的提交都是 AI 生成的垃圾,真正有效的漏洞报告只占 5%。4
tldraw 关闭了 PR。Fastify 关停了 HackerOne 漏洞赏金计划,因为涌入的报告多到无法处理。3
学术圈甚至有人写论文研究这个现象,标题就叫 “AI Slop is DDoSing Open Source”——AI 泔水正在对开源发起 DDoS 攻击。
WordPress 这边也一样。插件团队 2026 年 6 月的更新里说,2026 年 2 月的插件提交量是 2025 年 2 月的 两倍,是 2024 年 2 月的 四倍。5 月份更是达到了每周约 700 个提交——是 2024 年同期的 5 倍。5
四倍。五年时间,翻了两番。
而审核团队呢?插件团队靠招了三个新审核员才把峰值 1050 的队列清零。主题团队呢?15 个人。
所以你现在知道为什么审核越来越快、也越来越粗暴了(有的项目在GithubAcation里引入了AI审核)。不是他们不想好好审,是真的审不过来。AI 让提交的成本趋近于零,但审核的成本一点没变——甚至更高了,因为你还得分辨哪些是 AI 生成的垃圾。
在这种环境下,花了时间和精力的真实贡献,就像扔进大海里的一颗石子。
然后呢?
说了这么多,好像全是抱怨。
但其实我也没那么丧。Bifrost 那个 PR 下面的评论给了我一点奇怪的安慰。哪怕官方不看,哪怕永远不被 merge,只要有一个人用到了,它就不是完全没有意义的。
至于 WordPress 主题——我会改个屁,我用着开心就好了,我管你。该补的页面补上,该拆的插件功能拆出去,该用 Customizer 的地方就用 Customizer。readme.txt 全部翻成英文。
不是因为我觉得这些规则都是对的。
只是因为,作为弱小的开发者,我目前只有两个选择:要么不玩这个游戏,要么接受规则然后想办法玩好它。




发表回复