WordPress Theme: Nest

笔者的 WP 主题处女作 Nest 已于 2011 年 7 月 10 日正式被 WordPress 官方添加至其主题目录中。

这款主题笔者从今年三月份就开始提交了,一直审核不通过。从起初的机器审核(Automated Theme Scanning)到后面的人工审核(Test Data 等),前后共历时约四个月,更换了四个版本号(从 1.0.0 到 1.0.4)。期间不断修改和增删了许多功能代码。

本文将简要介绍在这漫长的提交过程中,审核机制所报出的各种问题和其相应的解决办法,以及得出的一些结论。望大家能从中得益。

今年年初以来,WordPress 官方突然加强了对主题的审核机制(不知插件审核是否变严格了?),使得许多新主题或是旧主题更新都难以通过审核。春节前后更是耗时漫长,据说一次 TracTicket 要两个星期才有回复,但现在不会了。:-)

主题审核的部分苛刻条件

此处主要是列举了最近变严格了的条例:

  • W3C CSS and HTML Validation:每个页面都必须完完全全地通过。
  • 主题文件中出现的函数和全局变量(global variables)的名称,必须以主题英文名加下划线作为前缀,缺一不可。(如 nest_theme_options_do_page()$nest_options 等)
  • 文字域(Text domain problems):函数 load_theme_textdomain 我们一般是在 add_action( 'after_setup_theme', ... 中调用的,问题仍然出现的原因最大可能是在脚本中直接使用了诸如“_e( 'Home' );”而非“_e( 'Home', 'nest' );”的翻译代码。简单讲就是 WordPress 程序自带的语言文字域是不能给主题使用的,即使看起来没问题。
  • WP 单元测试(Test Data)必须全部达到要求。
  • style.css 文件的头部主题信息中,每一项的冒号后不能有空格,否则字段将被识别为空。

以上是本主题在提交过程中遇到的比较囧的问题。

必备基础条件

如果您正准备提交主题,请您根据以下几点要求测试您的主题:

  1. 安装 Theme Check 插件,并在必要时进行测试。到 WP 上传的第一轮审核机制即此。
  2. 到 WP Theme Unit Test(http://codex.wordpress.org/Theme_Unit_Test)下载 test-data 文件并用 WP 内置的导入功能导入全部数据(包括所有附件和媒体),然后按照 Theme Unit Test 页面中要求的 WordPress Settings 逐一设置好 WP,并在需要时进行全面测试(主要看各篇文章内容中的要求)。
  3. 设置 WP 配置文件 wp-config.php 中的常量“define('WP_DEBUG', true);”。
  4. W3C CSS and HTML Validation。这个不用多说,值得注意的就是测试用的数据最好是 WP Theme Unit Test 用的 Test Data,然后就是禁用全部插件。

Nest 主题相关链接