Npcink Blog
切换菜单

主题发展-Wordpress 主题开发官方文档

本文是关于开发 WordPress 主题。如果您想了解有关如何安装和使用主题的更多信息,请查看使用主题。本主题与使用主题不同,因为它讨论了编写代码以构建自己的主题的技术方面,而不是如何激活主题或在何处获取新主题。

本页目录20 节
https://codex.WordPress.org/Theme_Development

本文是关于开发 WordPress 主题。如果您想了解有关如何安装和使用主题的更多信息,请查看使用主题。本主题与使用主题不同,因为它讨论了编写代码以构建自己的主题的技术方面,而不是如何激活主题或在何处获取新主题。

为什么 WordPress 主题

WordPress 主题是一起工作以创建 WordPress 网站的设计和功能的文件。每个主题可能不同,为网站所有者提供了许多选择,可以立即更改其网站外观。

您可能希望开发 WordPress 主题供您自己使用,用于客户端项目或提交到 WordPress 主题目录。为什么还要构建一个 WordPress 主题?

WordPress 主题也有很多好处。

  • 它将表示样式和模板文件与系统文件分开,因此站点将升级而不会对站点的可视化表示进行大幅更改。
  • 它允许自定义该主题独有的站点功能。
  • 它允许快速更改 WordPress 网站的视觉设计和布局。
  • 它消除了典型的 WordPress 网站所有者必须学习 CSS,HTML 和 PHP 才能拥有一个漂亮的网站的需要。

你为什么要建立自己的 WordPress 主题?这是真正的问题。

  • 这是一个了解 CSS,HTML 和 PHP 的更多信息的机会。
  • 这是一个将您的 CSS,HTML 和 PHP 专业知识用于工作的机会。
  • 它很有创意。
  • 这很有趣(大部分时间)。
  • 如果你把它发布给公众,你可以感觉很好,你分享并回馈给 WordPress 社区(好吧,吹牛的权利)

主题发展标准

应使用以下标准对 WordPress 主题进行编码:

主题剖析

WordPress 主题存在于 WordPress 主题目录(默认为 wp-content / themes /)的子目录中,无法使用 wp-config.php 文件直接移动。Theme 的子目录包含 Theme 的所有样式表文件,模板文件和可选函数文件(functions.php),JavaScript 文件和图像。例如,名为“test”的主题将驻留在目录 wp-content / themes / test /中。避免使用主题名称的数字,因为这会阻止它显示在可用的主题列表中。

WordPress 在每个新安装中都包含一个默认主题。仔细检查默认主题中的文件,以便更好地了解如何构建自己的主题文件。

有关视觉指南,请参阅 WordPress 主题剖析中的此信息图。

除图像和 JavaScript 文件外,WordPress 主题通常包含三种主要类型的文件。

  1. 样式表名为 style.css,它控制网站页面的显示(可视化设计和布局)。
  2. WordPress 模板文件控制网站页面生成 WordPress 数据库中信息的方式,以显示在网站上。
  3. 可选函数文件(functions.php)作为 WordPress 主题文件的一部分。

我们来看看这些。

儿童主题

最简单的主题是一个子主题,它只包含一个 style.css 文件,以及任何图像。这是可能的,因为它是另一个主题的孩子,作为其父母。

有关儿童主题的详细指南,请参阅儿童主题。

主题样式表

除了主题的 CSS 样式信息外,style.css 还以注释的形式提供有关主题的详细信息。样式表必须以注释的形式提供有关主题的详细信息。不允许两个主题在其注释标题中列出相同的详细信息,因为这会导致主题选择对话框中出现问题。如果您通过复制现有主题来制作自己的主题,请确保先更改此信息。

以下是样式表的前几行示例,称为样式表标题,主题为“二十三”:

/ *
主题名称:二十三
主题URI:http://wordpress.org/themes/twentythirteen
作者:WordPress团队
作者URI:http://wordpress.org/
描述:WordPress的2013年主题将我们带回博客,其中包含各种帖子格式,每种格式都以自己独特的方式精美呈现。设计细节比​​比皆是,从鲜艳的配色方案和匹配的标题图像,漂亮的排版和图标开始,以及灵活的布局,无论大小,都可以在任何设备上看起来都很棒。
版本:1.0
许可证:GNU通用公共许可证v2或更高版本
许可证URI:http://www.gnu.org/licenses/gpl-2.0.html
标签:黑色,棕色,橙色,棕褐色,白色,黄色,浅色,单列,双列,右侧边栏,灵活宽度,自定义标题,自定义菜单,编辑风格,特色图像,微格式,后格式,rtl语言支持,粘贴帖子,翻译就绪
文字域名:二十三
像WordPress这样的主题是根据GPL许可的。
用它来制作一些很酷的东西,玩得开心,并与他人分享你学到的东西。
* /

注意:建议用于作者的名称与主题作者的 WordPress.org 用户名相同,尽管它也可以是作者的真实姓名。选择是主题作者。

请注意用于描述主题的标记列表。这些允许用户使用标记过滤器查找主题。您可以在主题评论手册中找到完整列表。

style.css 中的注释标题行是 WordPress 能够识别主题并在“ 设计” >“ 主题”下的“ 管理面板”中将其显示为可用主题选项以及任何其他已安装主题所必需的。

样式表指南

  • 在编写 CSS 时遵循 CSS 编码标准。
  • 尽可能使用有效的 CSS。作为例外,使用特定于供应商的前缀来利用 CSS3 功能。
  • 最小化 CSS 黑客攻击。明显的例外是浏览器特定的支持,通常是 IE 的版本。如果可能,将单独的 CSS 分成单独的部分或单独的文件。
  • 所有可能的 HTML 元素都应该由您的主题设置样式(除非它是子主题),包括帖子/页面内容和评论内容。
  • 表格,标题,图像,列表,块引号等。
  • 强烈建议添加打印友好样式。
  • 您可以包含带有 media =“print”的打印样式表,也可以在主样式表中添加打印介质块。

功能文件

主题可以选择使用函数文件,该文件位于 theme 子目录中,名为 functions.php。此文件基本上就像一个插件,如果它存在于您正在使用的主题中,它将在 WordPress 初始化期间自动加载(包括管理页面和外部页面)。建议用于此文件:

默认的 WordPress 主题包含一个定义了许多这些功能的 functions.php 文件,因此您可能希望将其用作模型。由于 functions.php 基本上用作插件,因此 Function_Reference 列表是获取有关使用此文件可以执行的操作的更多信息的最佳位置。

请注意决定何时向 functions.php 或特定插件添加函数: 您可能会发现需要相同的函数才能使用多个父主题。如果是这种情况,则应在插件中创建该函数,而不是针对特定主题的 functions.php。这可以包括模板标签和其他特定功能。所有主题都可以看到插件中包含的功能。

模板文件

模板是用于生成访问者请求的页面的 PHP 源文件,并以 HTML 格式输出。模板文件由 HTML,PHP 和 WordPress 模板标签组成。

让我们看一下可以定义为主题一部分的各种模板。

WordPress 允许您为站点的各个方面定义单独的模板。但是,让您的站点的所有这些不同模板文件完全正常运行并不是必需的。根据模板层次结构选择和生成模板,具体取决于特定主题中可用的模板。

作为主题开发人员,您可以使用模板选择要实现的自定义量。例如,作为一种极端情况,您只能使用一个名为 index.php 的模板文件作为网站生成和显示的所有页面的模板。更常见的用途是让不同的模板文件生成不同的结果,以允许最大程度的自定义。

模板文件列表

这是 WordPress 识别的主题文件列表。当然,您的主题可以包含任何其他样式表,图像或文件。请记住,以下内容对 WordPress 有特殊意义 - 有关详细信息,请参阅模板层次结构。

style.css 文件

主要样式表。这必须包含在您的主题中,并且必须包含主题的信息标题。

rtl.css

rtl 样式表。如果网站的文字方向是从右到左,这将自动包含在内。这可以使用 RTLer 插件生成。

的 index.php

主要模板。如果您的主题提供了自己的模板,则必须存在 index.php。

的 comments.php

评论模板。

前 page.php 文件

首页模板。

home.php

主页模板,默认为首页。如果您使用静态首页,则这是包含最新帖子的页面的模板。

single.php 中

单个帖子模板。查询单个帖子时使用。对于此模板和所有其他查询模板,如果查询模板不存在,则使用 index.php。

单{型交} .PHP

查询自定义帖子类型中的单个帖子时使用的单个帖子模板。例如,single-book.php 将用于显示名为“book”的自定义帖子类型的单个帖子。如果自定义帖子类型的查询模板不存在,则使用 index.php。

page.php 文件

页面模板。在查询单个页面时使用。

category.php

该类别的模板。查询类别时使用。

tag.php

该标签模板。查询标记时使用。

taxonomy.php

该术语的模板。在查询自定义分类中的术语时使用。

author.php

在笔者的模板。在查询作者时使用。

date.php

日期/时间模板。在查询日期或时间时使用。年,月,日,小时,分钟,秒。

archive.php

存档模板。在查询类别,作者或日期时使用。请注意,category.php,author.php 和 date.php 将为其各自的查询类型覆盖此模板。

search.php 中

搜索结果模板。在执行搜索时使用。

attachment.php

附件模板。查看单个附件时使用。

image.php

图像附件模板。查看单个图像附件时使用。如果不存在,将使用 attachment.php。

404.php

在 404 未找到模板。当 WordPress 找不到与查询匹配的帖子或页面时使用。

这些文件对于 WordPress 具有特殊含义,因为根据模板层次结构,当相应的条件标记返回 true 时,它们可用作 index.php 的替代品(如果可用)。例如,如果只显示一个帖子,则 is_single()函数返回“true”,如果活动主题中有 single.php 文件,则该模板用于生成页面。

基本模板

至少,WordPress 主题包含两个文件:

  • style.css 文件
  • 的 index.php

这两个文件都进入 Theme 目录。该的 index.php 模板文件非常灵活。它可用于包括对标题,侧边栏,页脚,内容,类别,存档,搜索,错误以及在 WordPress 中创建的任何其他页面的所有引用。

或者,它可以分为模块化模板文件,每个文件都承担部分工作量。如果您不提供其他模板文件,WordPress 可能具有默认文件或函数来执行其作业。例如,如果您不提供 searchform.php 模板文件,则 WordPress 具有显示搜索表单的默认功能。

典型的模板文件包括:

  • 的 comments.php
  • 评论-popup.php
  • footer.php
  • header.php 文件
  • 的 sidebar.php

使用这些模板文件,您可以将模板标记放在 index.php 主文件中,以将这些其他文件包含在您希望它们出现在最终生成的页面中。

以下是包含用法的示例:

<?php get_sidebar(); ?>
<?php get_footer(); ?>

某些模板函数的默认文件可能已弃用或不存在,您应在主题中提供这些文件。从 3.0 版开始,不推荐使用的默认文件位于wp-includes/theme-compat。例如,您应该提供 header.php 文件的函数 get_header()安全工作,并 comments.php 文件的功能 comments_template() 。

有关这些各种模板如何工作以及如何在其中生成不同信息的更多信息,请阅读模板文档。

自定义页面模板

定义每个页面模板的文件位于主题目录中。要为页面创建新的自定义页面模板,您必须创建一个文件。让我们为我们的页面 snarfer.php 调用我们的第一个页面模板。在 snarfer.php 文件的顶部,输入以下内容:

<?PHP
/ *
模板名称:Snarfer
* /
?>

上面的代码将此 snarfer.php 文件定义为“Snarfer”模板。当然,“Snarfer”可以替换为大多数文本以更改页面模板的名称。此模板名称将显示在主题编辑器中,作为编辑此文件的链接。

该文件可能被命名几乎与任何东西.PHP 扩展(见预留主题文件名你要的文件名不能使用;这些是用于特定目的的专用文件名 WordPress 的储备)。

以上五行代码取决于您。您编写的其余代码将控制使用 Snarfer 页面模板的页面的显示方式。有关可用于此目的的各种 WordPress 模板函数的说明,请参阅模板标记。您可能会发现将其他模板(可能是 page.php 或 index.php)复制到 snarfer.php 然后将上面五行代码添加到文件的开头会更方便。这样,您只需要更改 HTML 和 PHP 代码,而不是从头开始创建它们。示例如下所示。创建页面模板并将其放在主题目录中后,在创建或编辑页面时,它将作为选项提供。(注意:创建或编辑页面时,除非以上述方式定义至少一个模板,否则不会显示“页面模板”选项。)

基于查询的模板文件

WordPress 可以为不同的查询类型加载不同的模板。有两种方法可以做到这一点:作为一部分内置模板层次结构,并通过使用条件标签内的循环模板文件。

要使用模板层次结构,您基本上需要提供专用模板文件,这些文件将自动用于覆盖 index.php。例如,如果您的 Theme 提供了一个名为 category.php 的模板并且正在查询某个类别,那么将加载 category.php 而不是 index.php。如果 category.php 不存在,则像往常一样使用 index.php。

通过提供名为 category-6.php 的文件,您可以在模板层次结构中获得更具体的信息 - 在为 ID 编号为 6 的类别生成页面时,将使用此文件而不是 category.php。如果您在 WordPress 版本 2.3 及更低版本中以站点管理员身​​份登录,则可以在管理 > 类别中找到类别 ID 号。在 WordPress 2.5 中,ID 列已从管理面板中删除。您可以通过单击“编辑类别”找到类别 ID '并在 URL 地址栏上查找 cat_ID 值。它将显示'... categories.php?action = edit&cat_ID = 3'其中'3'是类别 ID)。有关此过程如何工作的更详细信息,请参阅类别模板。

如果您的主题需要更多地控制使用哪些模板文件而不是模板层次结构中提供的模板文件,则可以使用条件标记。条件标记基本上在 WordPress 循环中检查是否某些特定条件为真,然后您可以根据该条件加载特定模板,或在屏幕上放置一些特定文本。

例如,要在仅在特定类别中找到的帖子中生成独特的样式表,代码可能如下所示:

<?PHP
if(is_category('9')){
get_template_part('single2'); //在ID为“9”的类别中查找帖子
} else {
get_template_part('single1'); //把它放在每个其他类别的帖子上
}
?>

或者,使用查询,它可能如下所示:

Terminal window
<?PHP
$ post = $ wp_query-> post;
if(in_category('9')){
get_template_part('single2');
} else {
get_template_part('single1');
}
?>

在任何一种情况下,此示例代码将导致使用不同的模板,具体取决于所显示的特定帖子的类别。查询条件不限于类别,但请参阅条件标签文章以查看所有选项。

定义自定义模板

可以使用 WordPress 插件系统来定义根据您自己的自定义条件显示的其他模板。可以使用“template_include” 操作挂钩完成此高级功能。有关创建插件的更多信息,请参阅 Plugin API 参考。

包括模板文件

要将另一个模板(除了标题,侧边栏,页脚,其中包含预定义的包含命令,如 get_header())加载到模板中,您可以使用 get_template_part()。这使主题可以轻松地重用代码段。

从模板引用文件

在同一主题中引用其他文件时,请避免使用硬编码的 URI 和文件路径。而是使用 bloginfo()引用 URI 和文件路径:请参阅从模板引用文件。

请注意,样式表中使用的 URI 是相对于样式表的,而不是引用样式表的页面。例如,如果在主题中包含 images /目录,则只需在 CSS 中指定此相对目录,如下所示:

h1 {
background-image:url(images / my-background.jpg);
}

插件 API 挂钩

在开发主题时,最好记住应该设置主题,以便它可以与用户可能决定安装的任何 WordPress 插件一起使用。插件通过“Action Hooks”为 WordPress 添加功能(有关更多信息,请参阅插件 API)。

大多数 Action Hook 都在 WordPress 的核心 PHP 代码中,因此您的主题不必具有任何特殊标记即可使用。但是,您的主题中需要存在一些 Action Hook,以便插件可以直接在页眉,页脚,侧边栏或页面正文中显示信息。以下是您需要包含的特殊 Action Hook 模板标签的列表:

wp_enqueue_scripts

用于主题函数文件。用于加载外部脚本和样式表。

wp_head()

在 header.php 中进入主题的<head>元素。示例插件使用:添加 JavaScript 代码。

wp_footer()

在结束</ body>标记之前进入 footer.php。示例插件使用:在页脚底部插入需要在其他所有内容后运行的 PHP 代码。通常用于插入网络统计信息代码,例如 Google Analytics。

wp_meta()

通常位于主题菜单或侧边栏的<li> Meta </ li>部分; sidebar.php 模板。示例插件使用:包括旋转广告或标签云。

comment_form()

在文件的结束标记(</ div>)之前直接进入 comments.php。示例插件使用:显示评论预览。

对于真实世界的用法示例,您将在默认主题模板中找到这些插件挂钩。

主题定制 API

从 WordPress 3.4 开始,默认情况下几乎所有 WordPress 主题都提供了一个新的主题自定义功能。主题自定义管理页面使用 add_theme_support()或使用 Settings API 自动填充主题声明支持的选项,并允许管理员查看他们实时更改的非永久预览。

有兴趣为主题的主题自定义页面添加新选项的主题和插件开发人员应该看到主题自定义 API 的文档。有关 Theme Customization API 的其他教程,请访问 Ottopress.com 网站。

不受信任的数据

您应该在主题中转义动态生成的内容,尤其是输出到 HTML 属性的内容。如 WordPress 编码标准中所述,进入属性的文本应该通过 esc_attr()运行,以便单引号或双引号不会结束属性值并使 XHTML 无效并导致安全问题。要检查的常用位置是 title,alt 和 value 属性。

对于需要安全输出的常见情况,几乎没有特殊的模板标签。一个这样的情况涉及使用_title_attribute()而不是 the_title()将标题属性输出到 title 属性以避免安全漏洞。以下是使用可翻译文本时正确转义帖子标题链接的 title 属性的示例:

<a href="<?php the_permalink();?>“title =”<?php sprintf(__('永久链接到%s','主题名'),the_title_attribute('echo = 0')); ?>“> <?php the_title(); ?> </A>

替换为正确的电话已过时逃生电话:()wp_specialchars 并用 htmlspecialchars()与 esc_html() ,)clean_url(与 esc_url(),和 attribute_escape()与 esc_attr() 。有关更多信息,请参阅 Data_Validation。

翻译支持/ I18n

为确保语言本地化的平滑过渡,请使用基于 WordPress gettext 的 i18n 函数将所有可翻译文本包装在模板文件中。这使翻译文件更容易挂钩并将标签,标题和其他模板文本翻译成网站的当前语言。有关 WordPress 开发人员的更多信息,请参阅 WordPress 本地化和 I18n。

主题类

实现以下模板标记以将 WordPress 生成的类属性添加到 body,post 和 comment 元素。对于帖子类,仅适用于 The Loop 中的元素。

模板文件清单

在开发主题时,请根据以下模板文件标准检查模板文件。

文件头(header.php)

以下是正确格式化的 HTML5 兼容头区域的示例:

<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<HEAD>
<meta charset =“<?php bloginfo('charset');?>”/>
<title> <?php wp_title(); ?> </ TITLE>
<link rel =“profile”href =“http://gmpg.org/xfn/11”/>
<link rel =“pingback”href =“<?php bloginfo('pingback_url');?>”/>
<?php if(is_singular()&& get_option('thread_comments'))wp_enqueue_script('comment-reply'); ?>
<?php wp_head(); ?>
</ HEAD>

导航菜单(header.php)

  • 主题的主导航应该支持带有 wp_nav_menu()的自定义菜单。
  • 菜单应支持长链接标题和大量列表项。这些项目不应破坏设计或布局。
  • 子菜单项应正确显示。如果可能,请支持子菜单项的下拉菜单样式。下拉菜单允许显示菜单深度而不是仅显示顶级。

小部件(sidebar.php)

  • 主题应该尽可能完整。布局中的任何区域都像窗口小部件(标签云,blogroll,类别列表)或可以接受窗口小部件(侧边栏)那样应该允许窗口小部件。
  • 默认情况下显示在窗口小部件区域中的内容(例如,硬编码到侧边栏中)应在从外观>窗口小部件启用窗口小部件时消失。

页脚(footer.php)

<?php wp_footer(); ?>
</ BODY>
</ HTML>

索引(index.php)

  • 以摘录或完整形式显示帖子列表。根据需要选择其中一个。
  • 包括 wp_link_pages()以支持帖子中的导航链接。

存档(archive.php)

  • 显示存档标题(标记,类别,基于日期或作者存档)。
  • 以摘录或完整形式显示帖子列表。根据需要选择其中一个。
  • 包括 wp_link_pages()以支持帖子中的导航链接。

页数(page.php)

  • 显示页面标题和页面内容。
  • 显示评论列表和评论表单(除非评论已关闭)。
  • 包含 wp_link_pages()以支持页面中的导航链接。
  • 不应显示标签,类别,日期和作者等元数据。
  • 显示具有编辑权限的登录用户的“编辑”链接。

单帖(single.php)

  • 包含 wp_link_pages()以支持帖子中的导航链接。
  • 显示帖子标题和帖子内容。
  • 标题应该是纯文本而不是指向自身的链接。
  • 显示发布日期。
  • 除非对设计很重要,否则请遵守日期和时间格式设置。(日期和时间格式的用户设置位于“ 管理面板” > “设置” >“ 常规”中)。
  • 对于基于用户设置的输出,请使用 the_time(get_option('date_format'))。
  • 显示作者姓名(如果适用)。
  • 显示帖子类别和帖子标签。
  • 显示具有编辑权限的登录用户的“编辑”链接。
  • 显示评论列表和评论表。
  • 使用 previous_post_link()和 next_post_link()显示下一个和上一个帖子的导航链接。

评论(comments.php)

  • 作者评论应以不同方式突出显示
  • 如果合适,显示 gravatars(用户头像)。
  • 支持线程评论。
  • 显示引用/ pingbacks。
  • 除非在 function_exist()中检查以避免重新声明错误,否则此文件不应包含函数定义。理想情况下,所有函数都应该在 functions.php 中。

搜索结果(search.php)

  • 以摘录或完整形式显示帖子列表。根据需要选择其中一个。
  • 搜索结果页面显示生成结果的搜索词。这是一种简单但有用的方法来提醒某人他们刚搜索的内容 - 尤其是在结果为零的情况下。使用_search_query ()或 get_search_query()(分别显示或返回值)。例如:
<h2> <?php printf(__('搜索结果:%s'),'<span>'。get_search_query()。'</ span>'); ?> </ H2>
  • 在搜索结果页面上再次包含搜索表单是一种很好的做法。包含它:get_search_form()。

JavaScript 的

  • 应尽可能将 JavaScript 代码放在外部文件中。
  • 使用 wp_enqueue_script()加载脚本。
  • 直接加载到 HTML 文档(模板文件)中的 JavaScript 应该进行 CDATA 编码,以防止旧版浏览器出错。
<script type =“text / javascript”>
/ * <![CDATA [* /
//你的Javascript的内容就在这里
/ *]]> * /
</ SCRIPT>

截图

为您的主题创建屏幕截图。屏幕截图应该命名为 screenshot.png,并且应该放在顶级目录中。屏幕截图应准确显示主题设计并以 PNG 格式保存。虽然.jpg,.jpeg 和.gif 也是屏幕截图的有效扩展名和文件格式,但不建议使用它们。

推荐的图像尺寸为 1200px 宽,900px 高。屏幕截图通常显示较小,但超大图像允许在 HiDPI 显示屏上进行高分辨率查看。请注意,由于“管理主题”屏幕具有响应性,因此屏幕截图图像的顶部和底部可能无法查看,因此请将图形保持在中心附近。

主题选项

主题可以选择支持主题自定义屏幕。有关示例代码,请参阅示例 WordPress 主题选项页面。

为用户角色启用主题自定义屏幕的可用性时,请使用“edit_theme_options”用户功能而不是“switch_themes”功能,除非用户角色实际上也应该能够切换主题。有关角色和功能以及添加管理菜单的更多信息,请参阅。

如果您在主题中的任何位置使用“edit_themes”功能来获得主题自定义屏幕(或某些自定义屏幕)的管理员角色访问权限,请注意,自 3.0 版本以来,此功能尚未分配给管理员角色在 WordPress 多站点安装的情况下默认。请参阅说明。在这种情况下,如果您希望管理员看到“主题选项”菜单,请使用“edit_theme_options”功能。使用 WordPress 多站点时,请参阅管理员角色的其他功能。

主题测试过程

  1. 修复 PHP 和 WordPress 错误。将以下调试设置添加到 wp-config.php 文件中,以查看已弃用的函数调用和其他与 WordPress 相关的错误:define('WP_DEBUG',true); 。有关详细信息,请参阅不推荐使用的函数挂钩。
  2. 根据模板文件清单检查模板文件(参见上文)。
  3. 使用主题单元测试进行贯穿。
  4. 验证 HTML 和 CSS。请参阅验证网站。
  5. 检查 JavaScript 错误。
  6. 在所有目标浏览器中测试。例如,IE9,Safari,Chrome,Opera,Firefox 和 Microsoft Edge。
  7. 清除任何无关的注释,调试设置或 TODO 项目。
  8. 如果您通过将主题提交到主题目录公开发布主题,请参阅主题审阅。

资源和参考

代码标准

主题设计

CSS

模板

功能列表

测试和质量保证

发布和推广

外部资源和教程

分类: