It’s not always easy to develop a WordPress site. Specially a complex site. I have switching and changing my workflow. Each and every site is unique and not every workflow is suitable for every case. I always try to get things done as soon as possible. Not because i have to, or because i’m a productivity nuts. But i lose focus very easily, specially when i develop my own site.
Right now i i use a very simple workflow to develop WordPress site, WordPress Theme, or Plugin. This is step by step what i did.
# 1. Wireframing
I think it’s the most important step. I just use pen and paper for most site. Everything need to be fixed before going to the next step.
# 2. Setup Subdomain in XAMPP lite
It’s easier to deploy all site (+content) when we delevop it using subdomain in XAMPP. Just because you don’t need to change .htaccess file. I already wrote tutorial for it: Use Multiple Subdomain in XAMPP. Next is to install WordPress, etc, etc…
# 3. Develop Theme + Plugin
To Speed up development i just use my super theme: Genbu, cause it have 11 layout + 10 blog archive template and a hook to easily create metaboxes and theme settings. Other theme i use is Prototype (no longer maintained). The most important is to use child theme to modify it.
For plugin, i don’t really write a complex plugin, just functionality plugin, mostly to register custom post type and taxonomy.
I use SVN for versioning. Currently i use SVN Hosting from Devzing and Springloops. Sometimes i use GitHub, but i plan to move all my repo cause lately Github is slow. I just start using SVN last year, and it’s addictive. I used to create dozens of copy for backup. Now i don’t need to do that.
# 4. Database and Content
I love to create a huge site with thousands of pages. And because i have a not-so-fast internet connection, building content and database on live site is painful. Uploading hundreds or thousands of images can take forever. I develop everything locally. At least for initial content.
I used to sell WordPress Databases. Recipes, Lyrics, PLR Article, etc. At first it’s hard to build and convert MySQL, CSV , or Plain text data to WordPress. But overtime it’s easier. Plus with WordPress there’s a lot of plugin to modify it. For example i use Drafts Scheduler Plugin to schedul post / content.
# 5. Staging / Demo Site
For client site i move all content to live site, so the client can login and try it before final revision. For demo/staging site i register an account in my Hostgator Reseller Plan with my subdomain.
Moving from local to live site is simple. i just zip everything and upload it to the server. For database i use WP Migrate DB to find and replace all URLs and paths. With WP Migrate DB you need to check custom link menu item, sometimes it’s not always sucessfuly replaced.
# 6. Deploy
Within cPanel i just add a domain. And set up DNS. Cause i already upload everything on my server i just need to copy all to new domain public html folder using cPanel file manager.
If needed I use deployment feature from Springloops for custom theme and custom plugin. But most of the time i just use semi-automatic plugin+theme update script. it’s easier this way, if i make any changes, i just upload it to my server and client can update it from wp-admin. Just like plugins and themes hosted @ wp.org repo.
# 7. All Done
I check every pages, reset / purge cache, etc.
Private SVN and Git Hosting with Deployment feature
- Springloops: free for 100mb
- Assembla: from $9 / month for 3GB
- Beanstalk app: from $15 / month for 3GB
- SVN2FTP: £1 / month for 500mb.
SVN and Git Deployment Script (never use it)
Self Hosted / GitHub Plugin+Theme Auto Update
- Automatic Theme Plugin Update Script – @GitHub (need fixing, several error, maybe i’ll publish my mod)
- WordPress GitHub Plugin Updater (previous version is buggy, never try the latest version)
- GitHub Theme Updater Plugin – @wp.org (buggy, don’t use it)
- Easy Digital Download Software Licensing Ext. (haven’t try it yet, pricey)