分发你的主题
同样的,当我们开发完成了主题后,我们也需要将主题发布出去,最简单、最省心的方式便是上传到 WordPress 官方的市场中。
上传到 WordPress 官方的市场依然需要遵循很多规则,接下来解读一下主题审核的流程和一些注意事项。
审核流程
(1)上传主题,添加到新主题的队列中:在这里可以看到主题的审核进度、审核员的反馈信息。
(2)主题被分配给审核员:审核员会检测主题是否「完备」,并对照最佳实践,查看是否符合一些其他的最佳实践(不符合也不影响审核,不过建议符合最佳实践,可以让审核员对你的主题有好感,通过的几率更大)。
(3)审核员审核完成后,会开一个工单(Ticket):在 Ticket 中说明你的问题,并等待更新。
如果没有在工单开启后7天内反馈信息,可能会被审核员关闭掉工单,下次就要重新提交申请了。
如果审核员在你回复的48小时内没有回复,可以申请将主题重新放入队列中,等待新的审核员接管。
(4)审核员审核通过后,会将此主题标记为通过,发送给终审审核员,由其进行最终审核:这个审核可以在这里看到。
(5)最终审核员如果发现了问题,会将这个主题退回给审核员进行审核。
(6)如果这个主题没有被审核出问题,将会上传到 WordPress 的仓库中去。
WordPress 官方的主题审核清单
无障碍相关
如果给你的标题加入了 accessibility-ready 标签,则主题需要为其做出一些准备,具体的清单可以参考这里。
这一项不需要太过于关注,大部分情况下我们不会加入这个标签。
代码规范
- PHP 和 JS 代码中不会报错(提醒);
- 主题的头部必须有符合标准的 DOCTYPE 声明和语言声明;
- 用户输入数据在进入数据库之前,需要进行转义和验证,所有不可信的数据在输出时需要进行转义;
- 经过 Theme Check 插件的检查;
- 主题定义的函数、变量、设置项、全局变量、常量等,需要有唯一的前缀。
代码特性
- 如果存在,优先使用 WordPress 自带的函数实现功能;
- 不能使用 WordPress 核心的私有方法;
- 不能要求付费使用特性;
- 避免使用硬编码来输出某些内容,尽可能的使用其他内容;
- 主题的标签不应该超过3个,而且标签应该有对应的设计和代码的实现;
- 尽可能使用 WordPress 自带的标签来输出内容;
- 包含评论功能的实现;
- 向下兼容3个版本;
- 主题不能移除/隐藏 adminBar。
演示和选项
- 主题选项不应该使用自定义文章类型来保存;
- 与主题设计无关的功能需要移除;
- 使用 starter-content 来为用户演示内容。
文档
- 任何非官方的、自行添加的功能都需要有对应的文档来说明。
语言
- 所有输出的内容都应该进行翻译(国际化,我们下节课会说);
- 在 style.css 中加入 text domain;
- 主题应该有一个唯一的别名(slug);
- 可以在主题中使用任何一种语言,但是整个主题内都应该使用这一种语言。
协议
- 主题需要基于 GPL 协议,或与 GPL 协议不冲突;
- 明确声明版权和许可,在 style.css 的头部加入 LICENSE 和 LICENSE URL;
- 对所有的资源进行版权和许可的说明(字体、图片等);
- 代码应该是你自己的编写的,或者授权给你的;
- 前台应该显示用户的版权,而不是主题开发者的版权。
命名
- 主题的名称不允许使用 WordPress、Theme;
- 如果涉及到 WordPress,则需要拼写准确(W、P 大写)。
设置和选项
- 将设置项保存在一个数组中;
- 支持自定义说明;
- 不向数据库写入插件设置的默认值;
- 对于主题的设置应该加入权限控制,确保不会有越权行为。
插件
- 主题不能包含插件;
- 主题不能需要插件才能工作;
- 主题只能推荐存在于 WordPress 官方目录中的插件;
- 需要使用 TGM Plugin Activation 来推荐用户安装插件;
- 主题可以引入满足要求的库,比如 options frameworks。
截图
- 截图应该是主题的演示;
- 截图可以选择性的展示支持的插件、设置和模板;
- 截图不能是一个 logo 或者 mockup;
- 主题截图不能大于 1200x900。
隐私
- 未经用户允许,不能向开发者发送数据;
- 不能使用短链接服务。
销售和链接
- Theme URI 是可选项;
- 如果有 Theme URI ,这个值应该是该主题在 WordPress 官方仓库的地址;
- 如果这个地址是演示站点,则该站点的内容必须关于主题本身,且不含测试数据;
- Author URI 是可选项,它应该是指向开发者个人网站的链接;
- 主题的底部只能有一个信息链接,而且这个链接应该是在 style.css 中定义的;
- 主题的底部应该还有一个信息链接指向 WordPress.org。
样式表和脚本
- 脚本和样式表不能进行硬编码;
- 除非你提供了源文件,否则不能对样式表和脚本进行压缩;
- 使用 WordPress 自带的库文件,而不是在主题中自行维护一个版本;
- 除了 Google Font,尽可能使用自带的文件,而不是远程链接。
模板
- 如果涉及到这些文件,应使用其对应的函数来引用:
- header.php (
get_header()
) - footer.php (
get_footer()
) - sidebar.php (
get_sidebar()
) - searchform.php (
get_search_form()
)
- header.php (
- 自定义模板文件应该使用
get_template_part
来引用或locate_tempalte
来引用; - 根据首页的设置显示正确的内容。
选择
看到上面的审核要求清单,是不是觉得差距很大?我们习以为常的东西在 WordPress 官方的规定中都是不允许出现的,对于大多数开发者来说,可能上面的很多条款会让我们十分难受,那么这个时候,你就要考虑你是否真的要将你的主题上架到 WordPress 官方商店了。
在国内,WordPress 主题的盗版屡禁不止,开发者们通过不同的方式来实现对盗版用户的封堵。在这里给大家提供一种可能,可以考虑将你的主题上传到 Themeforest 来进行售卖,Themeforest 也是一个知名的 WordPress 主题商店,但是它对于商业性质的主题更加友好,要求也更少一些,或许能够给你带来不错的收入。