惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
美团技术团队
酷 壳 – CoolShell
酷 壳 – CoolShell
Y
Y Combinator Blog
T
Tailwind CSS Blog
D
Docker
博客园 - Franky
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Google DeepMind News
Google DeepMind News
腾讯CDC
Vercel News
Vercel News
Engineering at Meta
Engineering at Meta
U
Unit 42
The Cloudflare Blog
S
SegmentFault 最新的问题
WordPress大学
WordPress大学
爱范儿
爱范儿
Recent Announcements
Recent Announcements
博客园 - 聂微东
博客园 - 叶小钗
H
Help Net Security
MyScale Blog
MyScale Blog

ts小陈

抖音刷到说唐山话的老视频 | ts小陈 Typecho自动发布文章插件,Typecho AI 机器人,每天自动发文章 | ts小陈 发现个宝藏短视频账号 | ts小陈 周末发现的赶海宝地 | ts小陈 用 PHP + 原生 JS 给老婆做了一个会放烟花的结婚纪念日页面 昨晚发现宝藏夜市摊 | ts小陈 给 WordPress 博客做了个数据大屏,我踩了这三个坑 | ts小陈 对面收被子的男人 | ts小陈 WordPress AI 机器人插件~ | ts小陈 听评书的大爷 | ts小陈 刷到灌篮高手剪辑 | ts小陈 保洁小哥换洗手液 | ts小陈 路边遇见刺猬 | ts小陈 十年前发的帖子,今天被挖出来了 | ts小陈 看了十年小说突然不想看了 | ts小陈 已读乱回的乐趣 | ts小陈 新主管太年轻了 | ts小陈 想学吉他的念头又来了 | ts小陈 摸鱼看小说被抓包 | ts小陈 解决wordpress网站使用Memcached缓存评论不刷新的问题 | ts小陈 五一 | ts小陈 是小鱼啊~ | ts小陈 考摩托车本,C1增驾D,报名到下证11天~ 我的switch oled送去硬破了~ | ts小陈 山烧着了~ 我在十万大山中看日落 | ts小陈 2026马到成功! PbootCMS管理后台增加自定义字段显示以及搜索,可显示和搜索其他自定义字段 | ts小陈 Windows 11 概念版光标 V2 鼠标指针皮肤 如何取消google谷歌浏览器右上角的版本提醒
记一次 WordPress 插件提交审核的全过程 | ts小陈
ts小陈 · 2026-07-27 · via ts小陈

2026年7月27日17:23:06

微信搜一搜 ts小陈

前两天把我的弹窗公告插件提交到了 WordPress 官方应用商店,前后折腾了三轮审核,分享一下整个过程,给打算上架的站长们做个参考。

记一次 WordPress 插件提交审核的全过程

第一轮:自动审核(PCP)

提交 ZIP 包之后,WP.org 会自动运行 Plugin Check Plugin(PCP)扫描,当场就会告诉你过没过

我这轮遇到的问题:

  • ❌ 插件名用了中文「弹窗公告」→ 改成英文 Homepage Popup Notice
  • ❌ 绑定了 jQuery 2.1.4 → 删除(WP 核心已自带,不允许重复捆绑)
  • ❌ Tested up to 写的是 6.9,当时最新版已是 7.0 → 更新版本号
  • ⚠️ Domain Path 指向的 languages 文件夹无 .mo 文件 → 删掉这个头信息

注意:这个扫描只是预检,还是有几率被拒的。不过没过也别怕,修好了重新上传就行。

记一次 WordPress 插件提交审核的全过程

第二轮:人工 + AI 混合审核

提交后等了不到一天,收到了志愿者发来的邮件,这次是人和 AI 一起看,列出了 7 个问题:

🔴 自定义 CSS/JS 输入框

插件里有一个「自定义 CSS」输入框,允许用户直接写 CSS。官方说不允许让用户随意粘贴任意代码,哪怕只是 CSS。

修复: 删掉 s1_custom_css 和 s2_btn_style 这两个字段。

🔴 用了 <style> 和 <script> 直接输出

有一些样式和脚本直接通过 <style> 和 <script> 标签输出在页面里。

修复: 改成 wp_add_inline_style() 和 wp_add_inline_script(),走标准的 wp_enqueue 流程。

🔴 nonce 没有 sanitize

wp_verify_nonce($_GET['_wpnonce'], ...) 直接传入了 GET 参数,没做任何清理。

修复: 改成 wp_verify_nonce(sanitize_text_field(wp_unslash($_GET['_wpnonce'])), ...)

🔴 Contributors 列表没有自己

readme.txt 里的 Contributors 只写了 tschencj,没有我的 WP.org 用户名 tsxcc

修复: 加上了 tsxcc

🔴 load_plugin_textdomain() 多余

WP 4.6 开始会自动加载语言文件,不用再手动调用了。

修复: 直接删掉。

🔴 js-cookie 版本过旧

用的 3.0.1,最新版已经是 3.0.8。

修复: npm view js-cookie 查最新版,下载替换。

🟧 所有权验证

这是最麻烦的一环。我用 163.com 邮箱注册的 WP.org,但插件的作者 URL 是我的个人网站 kqwq.com,志愿者无法确认我是不是那个域名的所有者。

修复: 按官方要求,把 WP.org 账号邮箱改成了 @kqwq.com 的邮箱,然后回复邮件说明情况。第二轮审核时通过了。

记一次 WordPress 插件提交审核的全过程

第三轮:终审

第二轮修复后上传了 v1.0.1,志愿者又看了一遍,这次所有技术问题都通过了,只剩下一个自动扫描的误报——Windows 上的路径分隔符 \ 被误判为文件名不兼容。

回复邮件说明是误报后,目前还在等待最终批准。

记一次 WordPress 插件提交审核的全过程

总结

时间线:

  • 7月20日 — 提交 ZIP 包,自动预检驳回(插件名中文、jQuery 捆绑、Tested up to 过时)
  • 7月20日 — 修好重新上传,当天收到第一轮人工审核邮件(列出 7 个问题)
  • 7月21日 — 修复所有问题,上传 v1.0.1,回复邮件说明所有权
  • 7月22日 — 志愿者回信说所有权仍需验证
  • 7月23日 — 把 WP.org 邮箱改成 @kqwq.com,回复邮件告知
  • 7月24日 — 志愿者确认所有权通过,终审只剩一个文件名误报
  • 7月24日 — 回复邮件说明是误报
  • 至今 — 等待中…

几点经验:

  1. 插件名必须英文,中文名直接报错
  2. 不要捆绑核心库(jQuery、React 等),WP 自带了
  3. 不要有任何让用户插入任意代码的输入框,这是红线
  4. 所有的输入都要 sanitize,特别是 nonce 这种
  5. 善用 wp_enqueue 系列函数,别自己手写 <script> 标签
  6. 邮箱域名要和插件作者域名一致,不然所有权验证会让你多等一轮
  7. 志愿者也是人,回复邮件简短客气就好,别写长篇大论

祝各位上架顺利 🚀