我对其他人如何为WordPress开发主题和插件感兴趣。对我来说,管理面板中的浏览器内编辑器只是不剪切它。当前,我只是使用带有PHP插件(NetBeans)的IDE,从服务器中拉出开发Web目录,在其中进行编辑,推送进行测试,然后再迁移到实际环境。
我正在寻找其他人在上线之前如何使用他们选择的工具来管理工作流,以开发,测试和部署主题,插件以及针对这些主题测试WordPress的最新版本。
我已将其设为社区Wiki,以便其他人可以共享那里的开发过程。我不希望在这里找到一个正确的答案-您的流程是您自己的,我不希望您为自己或其他任何人而工作。我只是想通过查看对他人有效或不有效的方法来提高开发插件和主题的能力。
这里的另一个问题是讨论支持WordPress开发的特定软件工具。在这里,我正在寻找可以独立于工具应用的更多流程和方法,除了某些任务可能仅在某些工具系列中才能完成。
#1 楼
作为记录,我主要制作整个网站和插件,并进行部署。我的工作流程非常繁琐。要开始一个新项目,我有一个Shell脚本,它负责建立新的虚拟主机并检查最新的虚拟主机的全部工作。 WordPress的标签(来自我们自己的git存储库,该库跟踪svn)。其中包含一个Capfile(capistrano的Makefile等价)和一个YAML配置文件,它们共同负责部署(http://github.com/dxw/wp-capistrano)。同样在该存储库中,我将主题和插件添加为git子模块(是的,我们也为第三方插件维护了git存储库-我们希望使用经过我们亲自测试的最新版本)。
对于主题,我有一个代码生成工具/框架(github.com/dxw/wp-generate)。这意味着您无需再去考虑代码应该去哪里,它具有将View与模型/控制器分离的自然方法。 github.com/dxw/cucumber-wordpress)。对于将开发数据库迁移到生产环境,通常只是复制转储的一种情况(WP_SITEURL和WP_HOME由capistrano在暂存/生产环境中设置)机器,因此无需搜索/替换。)
我无法想象我用这些脚本节省了多少小时。
评论
特别感谢您的链接。但是,难道您不会丢失生产数据库的内容吗?除了选择手动加载哪些表外,我还没有找到一种工作方法,即使那样,我也必须重做菜单项。
–Daniel C. Sobral
2012年5月16日下午2:01
#2 楼
@Thomas Owens这个问题有些重叠,并且重复了“ WordPress主题/插件开发软件?”这个问题。不知道我们是否应该关闭,但是似乎重点有所不同。所以...Mac OS X
这是我现在对于Max OS X必不可少的工具集(总是在寻找更好的工具。)请注意,我尝试使用NetBeans并放弃了它。速度太慢,功能太少。 this)
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调试
用于MySQL的Navicat-商业MySQL客户端
Unfuddle.com-客户端项目的SVN存储库和任务管理
PhpED-调试IDE(在Windows上没有比这更好的了) ,'cept PhpStorm + [XDEBUG] [24])
HeidiSQL-伟大的开源MySQL客户端
Notepad2-伟大轻巧且可用的记事本替代方案
TortoiseSVN-SVN客户端
提琴手2-无与伦比的HTTP调试器
代码部署/数据迁移到交换域
>不确定这是否正是您要寻找的,但是我开发了一个插件来简化本地开发服务器,测试服务器和部署服务器之间的迁移。我在这里写过:
如何轻松地将WP从开发转移到生产?
希望这对您有帮助
-Mike
#3 楼
这是工作流程的答案,并不特定于IDE或插件。 。在本地服务器根目录之外的单独位置中,存储您的wordpress插件/主题工作副本。在每个wordpress版本的/ wp-content / plugins文件夹中,创建一个指向相应主干/标签/分支的符号链接。
在IDE中编辑插件时,所做的更改显然会在每次wordpress安装中表示出来,因此可以轻松测试wordpress的多个变体。
本质上,您可以为每个本地wordpress变体打开浏览器选项卡,并在处理单个项目和单个文件库时测试每个。
使用支持SVN和FTP的IDE,您要做的就是编辑工作副本,然后将所做的更改提交回存储库。
作为IDE Coda可以帮我完成,但是我也喜欢NetBeans和Eclipse。
一旦您对插件的功能感到满意并且已经将这些更改提交到存储库中,就可以打开wordpress项目并将更改后的插件直接发布到您的实时站点。
#4 楼
自从大约2.5年前开始今天的工作以来,我已经有了一个相对简单的设置。 。 Vim插件包括:zencoding-vim
FuzzyFinder
垂直分割和
:set hidden
是必不可少的。我也更喜欢采用railscasts配色方案的256色终端(在Mac OS X上为iTerm)。当您知道变量是数组或对象时,可以很好地替代print_r()
和var_dump()
。不要测试插件与WordPress多个版本的兼容性。我在开发服务器上编码,然后通过Subversion将代码移入生产环境。评论
您可以使用xdebug获得非常好的var_dump。 xdebug堆栈跟踪还可以告诉您将哪些参数传递给函数(这非常有帮助)
–塔拉斯·曼科夫斯基
2010年8月20日4:39
#5 楼
WordPress主题开发过程将Mock Flow线框转换为基本的XHTML和CSS
将XHTML插入master.php模板文件,并转换为Template标签和WP函数
将master.php划分为各种
模板文件,即:header.php,
编写任何自定义查询和
/>可能需要的功能
插入CSS布局并添加
div
{outline:1px solid red;}
来帮助调整layout4。
将主题文件夹上传到WordPress以进行测试和进一步开发
WordPress开发工具
Aptana Studio WorkPlace代码编辑器
内置FTP
腻子
双1920 x 1200显示器,浏览器打开一个和另一个上的代码编辑器
Wacom Intuis 4平板电脑
具有Yslow和Google Page速度的Firebug
#6 楼
我的工作流程非常简单。我跟上4个环境。测试,开发,登台和生产。工作流程
我使用git进行版本控制;我忽略了wp-config.php文件,因此当我在不同位置进行推拉操作时,该文件不会被覆盖。我将unfuddle用作公共/中央存储库,以供其他人推送和提取。
这似乎工作得很好。在进行“测试”时,我会尽可能多地承诺。每天至少(如果不是更多)一次,我会与非同步同步,并让Development Server提取更改。我尝试不直接在服务器上做任何工作,因此我主要只是在进行更改。如果对数据库进行了重大更改(新插件,更新的内容等),则将其从我的测试中转储;对开发进行备份并导入转储。
我对暂存使用相同的过程。登台与生产位于同一台服务器上,因此请仔细检查并确保所有设置和模块在生产服务器上均正常运行。准备好后,我将备份所有生产文件和数据库,并从暂存中复制文件和数据库。推拉东西。从暂存阶段转为生产阶段时,我复制了文件,而不使用git,因此必须确保wp-config.php是正确的。我将研究使用此插件。
我还考虑过使用Capistrano;并创建一个非常详细的迁移脚本,该脚本将处理并处理所有文件和数据库备份/迁移以及更新文件路径和URL。
工具
我的编辑器为Textmate,尽管我开始使用MacVim。在Linux上使用vim。
Sequel Pro用于数据库操作。如果无法连接,则需要时使用PHPMyAdmin
为FTP传输。
git进行版本控制。尽管我已经在Textmate和GittiApp中使用了一些客户端,但通常都是通过命令行。
#7 楼
帮助我(特别是在处理多个客户端主题时)的一件事是在我的开发服务器上使用WordPress Multisite安装。这样,我可以根据需要拥有任意数量的空缺职位,而不必担心客户端A看到客户端B的主题。将此与全面的示例内容包结合在一起,每次创建新网站时我都会加载这些示例内容,您将拥有一个很棒的开发系统。#8 楼
我从使用生命周期系统的服务器上的就地入侵到使用版本控制系统和自动化测试的结构化的dev / test / stage / life cycle。这只是取决于工作。其次,当我在bug上运行它们时,我会向bug报告项目错误。一直在努力,以便根据现有的原则和模式构建新的车轮。
#9 楼
这是我的工作流程:我一获得网站的要求和设计就开始创建项目目录。
使用Git对
Static
和theme/plugin
文件夹中的文件夹进行版本转换。为项目创建虚拟主机。我遵循以下约定:
http://project1.dev/
http://project1.static.dev(可选)
我通常按照以下文件夹组织进行操作:
,但是我确实为Sprite2CSS项目使用了ANT构建工具,并结合了一些PHP脚本来使用ANT。
无论是在Windows还是Ubuntu上,我都使用以下代码:
Netbeans + SublimeText2 +记事本++ /> FakeMail
Git
Chrome和DevTools + Firefox与Firebug和Safari + IE用于测试
YSlow!
Filezilla / WinSCP / NB的内置FTP
Cygwin +命令提示符
Composer
NodeJS + NPM
SQLYog社区版+ PHPMyAdmin
我愿意就改善我的工作流程提出建议。
评论
你可能会的。类似的问题已经出现在:wordpress.stackexchange.com/questions/324/…