## 为什么要建立开发环境?
在开发主题时,最好在与最终托管WordPress安装的生产服务器相同的环境中执行此操作。 您的开发环境可以是本地的或远程的。 配置本地环境来处理WordPress主题有以下几个原因:
- 您可以在本地构建您的主题而不依靠远程服务器。 这可以加速您的开发过程,并允许您立即在浏览器中查看更改。
- 您不需要Internet连接来构建您的主题。
- 您可以从各种角度测试您的主题。 这很重要,特别是如果您打算将主题发布给更多的受众,并希望确保最大的兼容性。
## WordPress本地开发环境
要开发WordPress主题,您需要设置适合于WordPress的开发环境。 要开始,您将需要一个本地服务器堆栈和一个文本编辑器。 有很多选择,包括:
本地服务器堆栈
- 本地服务器堆栈(如LAMP(Linux Apache MySQL PHP))或WAMP(Windows Apache MySQL PHP)是服务器(与您的Web服务器上运行的服务器非常相似),您将在本地机器上进行配置。 您可以安装包含所有这些的预捆绑程序,如MAMP(适用于Mac)或XAMPP(Mac或Windows),以快速设置您的环境。
虚拟环境
- 使用Vagrant和VirtualBox创建的虚拟化功能允许您创建易于重现的开发环境。[ Varyant Vagrant Vagrant(VVV)](https://github.com/Varying-Vagrant-Vagrants/VVV)是流行的Vagrant选项,创建了WordPress开发环境。
文本编辑器
- 除了本地服务器环境之外,还需要一个文本编辑器来编写代码。 您选择的文本编辑器是个人的,但请记住,一个好的文本编辑器可以加快您的开发过程。 您的文本编辑器可以从编写代码到完全集成的开发环境(IDE)的基本工具中进行调试和测试。 值得进行研究,有些甚至包括对WordPress开发的支持。 热门的选择是Atom,Sublime Text和PhpStorm。
>[warning] 您可以在页面底部找到有关设置开发环境的教程列表。
## 支持较旧版本的WordPress
WordPress主题的标准做法是至少支持两个版本,以确保最小的向后兼容性。 例如,如果当前版本的WordPress为4.6,那么您还应该确保您的主题在4.5和4.4版本中运行良好。
您可以参考[WordPress路线图](https://wordpress.org/about/roadmap/)页面访问旧版本的WordPress。 然后,您可以下载并安装较旧的WordPress版本,创建多个开发站点,每个版本运行不同的WordPress版本进行测试。
### WP_DEBUG
配置调试是WordPress主题开发的重要组成部分。 WordPress提供了许多常量来支持您的调试工作。 这些包括:
WP_DEBUG
- `WP_DEBUG`PHP常量用于在您的WordPress安装上触发内置的“调试”模式。 这允许您查看主题中的错误。 启用它:
1. 打开您的WordPress安装的wp-config.php文件
2. 修改:
```PHP
define( 'WP_DEBUG', false );
```
为
```PHP
define( 'WP_DEBUG', true );
```
>[info] 注意:通常在wp-config.php文件中设置为“false”,默认情况下,即将发布的WP_DEBUG版本的WordPress-alpha和beta版本的开发副本已设置为“true”。
### WP_DEBUG_DISPLAY 和 WP_DEBUG_LOG
`WP_DEBUG_LOG`和`WP_DEBUG_DISPLAY`是扩展`WP_DEBUG`的其他PHP常量。
`WP_DEBUG_LOG`与`WP_DEBUG`结合使用,将所有错误消息记录到WordPress /wp-content/目录中的debug.log中。 要启用此功能,您的`wp-config.php`文件中将`WP_DEBUG_LOG`设置为`true`。
```php
define( 'WP_DEBUG_LOG', true );
```
`WP_DEBUG_DISPLAY`用于控制调试消息是否显示在主题页面的HTML中。 要在屏幕上显示错误消息,请在`wp-config.php`文件中将此设置配置为`true`。
```php
define( 'WP_DEBUG_DISPLAY', true );
```
启用`WP_DEBUG`和`WP_DEBUG_DISPLAY`后,错误消息将显示在您网站页面的顶部。
>[info] 注意:错误将显示在您的站点的前端和管理区域。这些调试工具用于本地测试和后台安装,而不是在发布站点。
## 其他WordPress开发工具
除了`WP_DEBUG`,以下插件和单元测试数据集是开发工具集的重要组成部分,可帮助您开发更好的WordPress主题。
### 测试数据
#### WordPress.org 主题单元测试数据
[WordPress.org主题单元测试数据](https://codex.wordpress.org/Theme_Unit_Test)是一个包含虚拟测试数据的XML文件,您可以上传以测试主题如何与不同类型和内容布局进行匹配。
#### WordPress.com 主题单元测试数据
[WordPress.com主题单元测试数据](http://themetest.wordpress.com/)是虚拟测试数据,您可以上传到WordPress安装来测试您的主题,包括特定于WordPress.com的功能。
## 插件
**Debug Bar (WordPress插件)**
- Debug Bar为您的WordPress管理员添加一个管理栏,提供调试中心位置。
**Query Monitor (WordPress插件)**
- Query Monitor 允许调试数据库查询,API请求和AJAX调用用于生成主题页和主题功能。
**Log Deprecated Notices (WordPress插件)**
- 日志已弃用通知记录不正确的功能使用和WordPress主题中使用已弃用的文件和功能。
**Monster Widgets (WordPress插件)**
- Monster Widget将核心WordPress小部件整合到一个小部件中,允许您在主题中测试小部件的样式和功能。
**Developer (WordPress插件)**
- 开发人员通过轻松安装工具和插件来帮助您排除故障并确保代码质量,帮助您优化开发环境。
**Theme-Check (WordPress插件)**
- Theme-Check测试您的主题,以符合最新的WordPress标准和做法。
## WordPress主题评论指南
除了上述开发工具之外,最好在[WordPress.org主题评审小组](https://make.wordpress.org/themes/2013/11/10/guidelines-shouldnt-fail-a-theme/)的主题提交指南和[WordPress编码标准](https://make.wordpress.org/core/handbook/best-practices/coding-standards/)会议指导上保持最新。 这些指南是质量主题开发的“黄金标准”,即使您不打算在WordPress.org上发布主题,也是有用的。
## 其他资源
- 使用MAMP本地开发WordPress (Mac, MAMP)
- 如何为Windows设置WordPress开发环境 (Windows, XAMPP)
- WordPress主题评论VVV:测试主题的快速流动设置 (Cross-platform, Vagrant)
- 设置开发环境 (WordPress.com VIP)
- wptest.io – 从WordPress的主题单元测试派生的一系列WordPress测试数据
- 简介
- 主题开发
- WordPress许可证
- 什么是主题
- 开发环境
- 主题开发示例
- 主题基础
- 模板文件
- 主样式表(style.css)
- 文章类型
- 规划主题文件
- 模板层级
- 模板标签
- 循环
- 主题函数
- 连接主题文件和目录
- 使用CSS和JavaScript
- 条件标签
- 类别,标签和自定义分类
- 模板文件
- 内容模板文件
- 页面模板文件
- 附件模板文件
- 自定义内容类型
- 部分和其他模板文件
- 评论模板
- 分类模板
- 404页面
- 主题功能
- 核心支持的功能
- 管理菜单
- 自定义Headers
- 自定义Logo
- 文章格式
- 置顶文章
- Sidebars
- Widgets
- 导航菜单
- 分页
- 媒体
- Audio
- Images
- Galleries
- Video
- 精选图片和缩略图
- 国际化
- 本地化
- 辅助功能
- 主题选项 – 自定义API
- 定制对象
- 改进用户体验的工具
- 定制JavaScript API
- JavaScript / Underscore.js渲染的自定义控件
- 高级用法
- 主题安全
- 数据消毒/逃避
- 数据验证
- 使用随机数
- 常见漏洞
- 高级主题
- 子主题
- UI最佳实践
- JavaScript最佳做法
- 主题单元测试
- 验证你的主题
- Plugin API Hooks
- 发布你的主题
- 所需的主题文件
- 测试
- 主题评论指南
- 写文档
- 提交你的主题到WordPress.org
- 参考文献
- 模板标签列表
- 条件标签列表
- 编码标准
- HTML编码标准
- CSS编码标准
- JavaScript编码标准
- PHP编码标准
- 插件开发
- 插件开发简介
- 什么是插件
- 插件基础
- 头部要求
- 包括软件许可证
- 启用 / 停用 Hooks
- 卸载方法
- 最佳做法
- 插件安全
- 检查用户功能
- 数据验证
- 保护输入
- 保护输出
- 随机数
- Hooks
- Actions
- Filters
- 自定义Hooks
- 高级主题
- 管理菜单
- 顶级菜单
- 子菜单
- 短代码
- 基本短码
- 封闭短码
- 带参数的短代码
- TinyMCE增强型短码
- 设置
- 设置API
- 使用设置API
- 选项API
- 自定义设置页面
- 元数据
- 管理帖子元数据
- 自定义元数据
- 渲染元数据
- 自定义文章类型
- 注册自定义文章类型
- 使用自定义文章类型
- 分类
- 使用自定义分类
- 在WP 4.2+中使用“split术语”
- 用户
- 创建和管理用户
- 使用用户元数据
- 角色和功能
- HTTP API
- JavaScript
- jQuery
- Ajax
- 服务器端PHP和入队
- Heartbeat API
- 概要
- 计划任务
- 了解WP-Cron计划
- 安排WP-Cron 事件
- 将WP-Cron挂接到系统任务计划程序中
- WP-Cron简单测试
- 国际化
- 本地化
- 如何国际化您的插件
- 国际化安全
- WordPress.org
- 详细插件指南
- 规划您的插件
- 如何使用Subversion
- 插件开发者常见问题
- 开发工具
- Debug Bar 和附加组件
- 辅助插件
- REST API手册
- 资源
- 文章
- 文章修订
- 文章类型
- 文章状态
- 类别
- 标签
- 页面
- 评论
- 分类
- 媒体
- 用户
- 设置
- 使用REST API
- 全局参数
- 分页
- 链接和嵌入
- 发现
- 认证
- 经常问的问题
- 骨干JavaScript客户端
- 客户端库
- 扩展REST API
- 添加自定义端点
- 自定义内容类型
- 修改回应
- 模式
- 词汇表
- 路由和端点
- 控制器类