Warning: I am not a Wordpress dev or user, I try to avoid working with it as much as possible. So some asumptions may be trolling or totally wrong because I overlooked something. You may give feedback if you wish.
Recently I got to work with a Wordpress instance. When I work, I work locally, but Wordpress is thought like an online tools only, for example:
- Working locally mean that you need to modify some DB fields when you export it to live
- By default there is no dev server provided directly with WP you have to install/provide your own
- Wordpress seems to not work with an arbitrary port, it always redirect me
to :80/:430 (depending of its config), thus you can not simply do something
like
php -S localhost:8080
, and since :80/:443 need root, it means runningsudo php -S localhost:80
(HAHA NOPE) - Working with dev/staging/production seems not trivial
- As far as I know and find, the official doc is rather sparse on those issues
Other assumptions:
- I am used to the shell
- I do not like clika-clika interfaces, I work with a keyboard not a mouse
- My dev machine is not even close of the production env. So...
- ... dealing with a local install of a server+config on my dev machine is a no-no (VM/container were invented for that)
- I work on GNU/Linux
- I am not a fan of PHP (but that should be the obvious feeling about PHP for any serious dev)
- As much as possible I want to avoid ugly hacks like modifying the source code for my dev thingy to work
So I was looking for tools that can help making modern dev workflow with Wordpress bearable.
After some research and some lazy Twitter asking I find all those ressources. (in no particular order)
Note that I did not use those tools yet, this is just what I found. Some may be good, some may be lame. Dunno.
- A community driven list of developer tools/plugins: http://wpgear.org/
- Wordpress CLI: http://wp-cli.org/
- Webmaster tools integration from search engine: http://en.support.wordpress.com/webmaster-tools/
- Vagrant based development environment (Vagrant + chef): http://vccw.cc/
- Bedrock WordPress Stack (Vagrant + composer + Ansible + Capistrano): http://roots.io/wordpress-stack/
- "Tools" from the wordpress support doc: http://en.support.wordpress.com/category/tools/
- Genesis Wordpress "Rapidly create, develop, & deploy WordPress across multiple environments" (Vagrant + Ansible + Capistrano + Yeoman): https://github.com/genesis/wordpress
- "Varying Vagrant Vagrants is an evolving Vagrant configuration focused on WordPress development": https://github.com/Varying-Vagrant-Vagrants/VVV
- "A plugin, which helps WordPress developers develop": https://github.com/Automattic/developer
- airplane-mode "Control loading of external files when developing locally": https://github.com/norcross/airplane-mode
- How to Sync A Local & Remote WordPress Blog Using Version Control: http://code.tutsplus.com/tutorials/how-to-sync-a-local-remote-wordpress-blog-using-version-control--wp-22135
- Local, Dev, Staging, Production WordPress Workflow: http://developdaly.com/wordpress/local-dev-staging-production-wordpress-workflow/
- WordPress local dev tips, DB & plugins: http://markjaquith.wordpress.com/2011/06/24/wordpress-local-dev-tips/
- Running a Development Copy of WordPress: http://codex.wordpress.org/Running_a_Development_Copy_of_WordPress
- WordPress Local Development Tips: http://www.wanderingjon.com/2013/06/16/wordpress-local-development-tips/