WordPress 主题上架官方目录:审核卡在哪几个点
WordPress 官方主题目录的审核比插件严得多。插件会放行一些灰色做法,主题基本不放。 我提交过两次,第一次被退回 11 条,第二次过。这篇把退回的意见整理一下。 一、所有输出必须转义 这是退回意见里占比最高的。 模板里 echo $p
WordPress 官方主题目录的审核比插件严得多。插件会放行一些灰色做法,主题基本不放。
我提交过两次,第一次被退回 11 条,第二次过。这篇把退回的意见整理一下。
一、所有输出必须转义
这是退回意见里占比最高的。
模板里 echo $post->post_title、echo get_option('blogname') 这种写法,一条都过不了。必须:
echo esc_html(get_the_title());
echo esc_url($url);
echo esc_attr($class);
echo wp_kses_post($content);
选哪个函数有讲究:
- 纯文本用
esc_html() - URL 用
esc_url() - HTML 属性值用
esc_attr() - 允许部分 HTML 的正文用
wp_kses_post() - 写进 JS 的变量用
wp_json_encode()
退回意见里会精确到行号,我收到的那份列了 23 行。
麻烦但没得商量。审核员会一行一行看。
二、不能自己写 CSS 和 JS 的引入
上面 functions.php 那篇讲过,这里再说一遍,因为它是第二条最常被退的原因。
所有资源必须走 wp_enqueue_style() / wp_enqueue_script(),不能直接 echo 标签进 wp_head。
理由审核意见里也写了:插件需要知道主题加载了什么资源,才能做优化、合并、延迟加载。直接 echo 的,插件完全看不见。
三、主题里不能有业务功能
「Presentational, not functional」——这是官方原话。
被我删掉的东西包括:
- 自定义文章类型的注册
- SEO meta 输出(og:title、canonical)
- 统计代码
- 联系表单
- 短代码
这些都得进插件。主题只管长什么样,不管产生什么数据。
我一开始想留 SEO 那块,因为不少付费主题都自带 SEO 模块。但官方目录是另一套标准,付费渠道不管这块。
四、钩子必须留
模板里那些看起来「反正没人用」的位置,官方要求必须留钩子:
do_action('before_content');
do_action('after_content');
apply_filters('theme_post_meta', $meta);
退回意见原话大意是:用户装插件后需要往这些位置塞东西,主题不给钩子等于把路堵死了。
我当时漏了三处:wp_footer 之前的 do_action('before_footer')、body 开标签后的 do_action('after_body_open')、文章列表循环外的 do_action('before_loop')。
补的方式很简单,就是加一行。但不知道要求的话,想不到要加。
五、无障碍那几条
这块近几年越来越严。最低要求:
- 跳转链接(skip link):键盘用户按 Tab 能直接跳到正文,跳过导航
- 所有图片
alt属性不能空着——除非是纯装饰,那就alt=""加aria-hidden="true" - 表单控件要有
label - 焦点样式不能
outline: none就完事,得给个替代的可见状态 - 颜色对比度至少 4.5:1(正文)
第四条我撞过。设计稿要求去掉输入框的默认蓝框,我就写了 outline: none。退回意见要求补一个 :focus-visible 样式替代。
对比度这条用工具查最快,浏览器开发者工具里检查元素,颜色那一栏会标对比度比值。
六、截图和许可证
这几项不影响代码,但会卡流程:
screenshot.png必须 1200×900- 头部
License必须写 GPL v2 或更高 - 主题里用到的所有字体、图标、图片,许可证必须兼容 GPL,且要写进
readme.txt的 Resources 段 - 不能捆绑来自非 GPL 渠道的商业素材
第三条最容易忽略。我从免费图标库里拿了一套图标,那套标的是 MIT,可以用,但必须在 readme 里写明来源和许可证。第一次提交时没写,被退。
提交到过的状态
流程大致是:提交 zip → 自动检查 → 人工审核 → 给意见 → 修改重提 → 通过 → 上线。
我那次从提交到过,前后二十来天。中间退了两次,每次修改加等待大约一周。
如果只是自己用或者给客户做,别走官方目录。那条路适合真的想公开分发的场景。
自己用的主题,把安全做好、别写死路径、留好钩子就够了,前面那些无障碍和转义的细节,客户不会查,但你以后接手的人会感谢你。