What process do you use for WordPress development? [closed]

I’m interested in how other people develop themes and plugins for WordPress. To me, the in-browser editor in the admin panel just doesn’t cut it. Currently, I’m just using an IDE with a PHP plugin (NetBeans), pulling down my development web directory from my server, editing in there, pushing up to test, and then migrating over to live.

I’m looking for how other people use their tools of choice to manage workflows for developing, testing, and deploying themes, plugins, and testing the latest versions of WordPress against these before going live.

I’ve made this a community wiki so that other people can share there development process. I’m not expecting to find a singular right answer here – your process is your own, and I wouldn’t expect what you do to just work for myself or anyone else. I’m just interested in improving my ability to develop plugins and themes by seeing what works or doesn’t work for other people.

Another question here discusses specific software tools to support WordPress development. Here, I’m looking for more process and methodology that can be applied independently of tools, with the exception of certain tasks that might only be accomplished in a certain family of tools.

10

For the record, I mainly make whole Web sites and plugins, and deploy them. My workflow is very Ruby- and git-heavy.

To start out on a new project, I have a shell script which takes care of the whole business of setting up a new vhost and checking out the latest tag of WordPress (from our own git repository, which tracks svn).

The basic shape of a whole Web site is a git repsotory at wp-content. That contains a Capfile (capistrano’s Makefile eqiuivalent) and a YAML configuration file which together take care of deployment ( http://github.com/dxw/wp-capistrano ). Also inside that repository I add the theme and plugins as git sub-modules (yes, we maintain git repositories for third party plugins too – we like to use the latest version that we’ve personally tested).

For the theme, I have a code-generation tool/framework ( github.com/dxw/wp-generate ). It means less thinking about where code should go, and it has a natural method of seperation between the View and the Model/Controller.

When writing plugins I use cucumber/webrat to do test-driven development ( github.com/dxw/cucumber-wordpress ).

And for migrating development databases to production, it’s usually just a case of copying the dump over (WP_SITEURL and WP_HOME are set by capistrano on the staging/production machines so no search/replace).

I can’t imagine how many hours I’ve saved with these scripts.

Leave a Comment