问题描述
我对其他人如何开发 WordPress 的主题和插件感兴趣。对我来说,管理面板中的 in-browser 编辑器并没有削减它。目前,我只是使用一个带有 PHP 插件 (NetBeans) 的 IDE,从我的服务器上拉下我的开发 web 目录,在那里进行编辑,然后进行测试,然后移植到 live 上。
我正在寻找其他人如何使用他们的工具来管理工作流程,以便在开始,测试和部署主题,插件和测试最新版本的 WordPress 之前,在开始使用之前。
我已经将这个社区 wiki 做成了一个社区 wiki,以便其他人可以共享开发过程。我不期待在这里找到一个单一的正确答案 – 你的过程是你自己的,我不会指望你为自己或任何其他人工作。我只是想提高我开发插件和主题的能力,看看哪些是有用的或不适用于其他人。
另一个问题在此讨论具体的 software tools to support WordPress development 。在这里,我正在寻找可以独立于工具应用的更多过程和方法,除了某些可能仅在某些工具系列中完成的任务之外。
最佳解决方案
为了记录,我主要制作整个网站和插件,并进行部署。我的工作流程非常 Ruby – 和 git-heavy 。
要开始一个新项目,我有一个 shell 脚本,负责设置一个新的虚拟机的整个业务,并检查最新的 WordPress 标签 (从我们自己的 git 仓库,跟踪 svn) 。
整个网站的基本形状是 wp-content 的 git repsotory 。它包含 Capfile(capistrano 的 Makefile eqiuivalent) 和一起处理部署的 YAML 配置文件 (http://github.com/dxw/wp-capistrano) 。在这个存储库里面,我添加了一个主题和插件作为 git sub-modules(是的,我们维护第三方插件的 git 存储库 – 我们喜欢使用我们亲自测试的最新版本) 。
对于主题,我有一个 code-generation 工具/框架 (github.com/dxw/wp-generate) 。这意味着考虑代码应该去哪里,而且它具有在 View 和 Model / Controller 之间分离的自然方法。
编写插件时,我使用黄瓜/ webrat 做 test-driven 开发 (github.com/dxw/cucumber-wordpress) 。
而对于将开发数据库迁移到生产中,通常只需复制转储 (WP_SITEURL 和 WP_HOME 由 capistrano 在分段/生产计算机上设置,因此无需搜索/替换) 。
我无法想象我用这些脚本保存了几个小时。
次佳解决方案
@Thomas Owens 这个问题有些重叠并重复了 「WordPress 主题/插件开发软件」 的问题。不确定是否应该关闭,但是看起来略有不同。所以…
Mac OS X
这是 Max OS X 的主要工具集 (总是寻找更好的) 。注意我尝试过 NetBeans 并放弃了它。太慢,功能太少
- PhpStorm + XDEBUG – 调试 IDE(在 MAC 上更好)
- VirtualHostX – 本地管理 Apache 虚拟主机 (我喜欢这个)
- FileZilla – FTP 客户端
- Firefox Firebug – jQuery 调试
- Navicat for MySQL – 商业 MySQL 客户端
- Unfuddle.com – 客户端项目的 SVN 存储库和任务管理
- HTTP Scoop – 合理的 HTTP 调试器
- Fraise – 轻量级文本编辑器 (Smultron 的叉)
Windows Vista
当我在 Windows Vista 上时,我的主要工具包是:
- FileZilla – FTP 客户端
- Firefox Firebug – jQuery 调试
- Navicat for MySQL – 商业 MySQL 客户端
- Unfuddle.com – 客户端项目的 SVN 存储库和任务管理
- PhpED – 调试 IDE(在 Windows 上没有什么更好,「可能 PhpStorm + [XDEBUG] [24])
- HeidiSQL – 大 open-source MySQL 客户端
- Notepad2 – 轻巧可用的记事本替代品
- TortoiseSVN – SVN 客户端
- Fiddler 2 – 无与伦比的 HTTP 调试器
代码部署/数据迁移到切换域
不知道这是否正是您正在寻找的,但是我开发了一个插件来简化本地开发人员服务器,测试服务器和部署服务器之间的迁移。我在这里写道:
希望这可以帮助
-麦克风
第三种解决方案
这是一个工作流程的答案,不是特定于 IDE 或插件。
一个非常适用于插件开发的解决方案是从本地的 apache web 服务器开始,每个 wordpress 变体都安装在 sub-folder 中。
在本地服务器根目录之外的另一个位置,存储您的 wordpress 插件/主题工作副本。在每个 wordpress 变体的/ wp-content / plugins 文件夹中创建符号链接到相应的中继线/标签/分支。
当您在 IDE 中编辑插件时,您所做的更改显然将在每个 wordpress 安装中进行表示,因此可以轻松测试 wordpress 的多种变体。
本质上,您可以为每个本地 WordPress 变体打开浏览器选项卡,并在单个项目和单个文件库的基础上进行测试。
使用支持 SVN& FTP 您需要做的是编辑您的工作副本并将更改提交到存储库。
作为 IDE Coda 对我来说,但是我也喜欢 NetBeans 和 Eclipse 。
一旦你快乐,你的插件工作,你已经承诺这些更改到您的存储库,然后您可以打开您的 WordPress 项目,并将更改的插件直接发布到您的现场。
第四种方案
我有一个相对简单的设置,从开始我的现在工作〜 2.5 年前发展。
Developing
我通过 SSH 进行所有开发,在 GNU screen 中使用 Vim 。 Vim 插件包括:
垂直分割和:set hidden
是必不可少的。我还喜欢使用 railscasts 配色方案的 256 色终端 (Mac OS X 上的 iTerm) 。
我们也慢慢修改 dBug 以满足我们的需求。当您知道变量是一个数组或对象时,print_r()
和 var_dump()
可以很好的替代。
Deploying
目前我不会在许多公共插件/主题上工作,所以我不会测试与多个版本的 WordPress 的插件兼容性。我在 dev 服务器上编码,并通过 Subversion 将该代码移植到生产中。
第五种方案
WordPress 主题开发流程
- 将 Mock 流线框转换为基本的 XHTML 和 CSS
- 将 XHTML 插入 master.php 模板文件,并转换为模板标签和 WP 功能
- 将 master.php 分成各种模板文件,即:header.php,index.php,sidebar.php 和 footer.php
- 编写可能需要的任何自定义查询和函数
- 插入 CSS 布局并添加
div
来帮助调整 layout4 。
{outline:1px solid red;} - 将主题文件夹上传到 WordPress 进行测试和进一步开发
WordPress 开发工具
- Aptana Studio WorkPlace 代码编辑器,内置 FTP
- 油灰
- 双屏 1920 x 1200 显示器,浏览器打开,代码编辑器另一个
- Wacom Intuis 4 片
- Firebug 与 Yslow 和 Google Page speed
第六种方案
我的工作流程非常简单。我跟上 4 个环境。测试,开发,分期和生产。
Workflow
我使用 git 进行修改控制; 我忽略了 wp-config.php 文件,所以当我推拉不同的位置时,这个文件不会被覆盖。我使用 unfuddle 作为公共/中央存储库供他人推拉。
这似乎工作得很好。当我正在进行测试时,我会尽可能多地提交。至少每天一次,如果不是更多,我会同步到无障碍,让开发服务器拉动更改。我尽量不要在服务器上做任何直接的工作,所以我主要只是拉扯变化。如果有重大的数据库更改 (新插件,更新的内容等),那么我将从我的测试转储它; 备份开发并导入转储。
我使用与 Staging 相同的过程。分段与生产一起坐在同一台服务器上,双重检查抛光,并确保所有设置和模块都在生产服务器上工作。当我准备好了,我备份所有的生产文件和数据库,并从分段复制文件和数据库。
由于 wp-config.php 不在 git 中,所以推拉动作非常简单。当转移到生产从分期,我复制文件,而不是使用 git,所以我必须确保 wp-config.php 是正确的。
我问过一个简单的 question,我将研究使用这个插件。
我也考虑过使用 Capistrano; 并创建一个非常详细的迁移脚本,它将通过并处理所有文件和数据库备份/迁移以及更新文件路径和 URL 。
Tools
- 我的编辑器的 Textmate,虽然我开始使用 MacVim 。我在 linux 上使用 vim 。
- Sequel Pro 用于数据库操作。如果我无法连接,我将使用 PHPMyAdmin
- 如果需要,传送 FTP 。
- git 进行修改控制。主要是通过命令行,虽然我已经在 Textmate 和 GittiApp 中使用了客户端。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。