Deployment automation for Wordpress. This plugin is a set of tasks used to deploy and manage Wordpress sites. This plugin is particularly useful for moving Wordpress sites to different environments with ease.
$ composer global require pomander/wordpress:@stable
Load into environment
Include this in all of your environment configurations that use Wordpress. This will load all of the necessary tasks into the environment.
$env->load("Wordpress"); // settings and tasks...
This is what you get
deploy:plugins # Deploy plugins in environment. deploy:wordpress # Deploy Wordpress in environment. htaccess # Create and deploy .htaccess for environments setup # Alias of wpify uploads:pull # Download uploads from environment uploads:push # Place all local uploads into environment wp_config # Create and deploy wp-config.php for environment wpify # Wordpress task stack for local machine (1 and done)
Existing tasks like
deploy are automatically modified to work so you don't have to change your workflow.
Command line usage
pom setup to completely bootstrap your development environment.
$ pom setup * info fetch Wordpress 3.6 * info plugin advanced-custom-fields at http://plugins.svn.wordpress.org/advanced-custom-fields/trunk * info plugins Successfully deployed. * info create database wordpress_development * info config creating wp-config.php * info htaccess creating .htaccess * info wpify success $ pom staging deploy * info environment staging * info target ec2-54-227-42-2.compute-1.amazonaws.com * info deploy updating code HEAD is now at ab476f8 * info fetch Wordpress 3.6 * info plugin advanced-custom-fields at http://plugins.svn.wordpress.org/advanced-custom-fields/trunk * info plugins Successfully deployed. * info config creating wp-config.php * info htaccess creating .htaccess
Every deploy will fetch a fresh copy of Wordpress, deploy your plugins, create a wp-config and htaccess file.
Use the wordpress setting to specify which version of Wordpress you need, and any other wordpress specific options.
$env->wordpress(array( 'version' => '3.6', 'db_prefix' => 'wp_', 'base_uri' => '' )); $env->plugins(array( // fetches from plugins.wordpress.org 'advanced-custom-fields' => array('version' => 'latest'), // fetches from local folder 'gravityforms' => array('dir' => 'lib/gravityforms') // fetches from git repository 'wp-github-activity' => array('branch' => 'origin/master' => 'git' => 'https://github.com/alexkingorg/wp-github-activity'), // fetches from svn repository 'more-types' => array('version' => '2.1', 'svn' => 'http://plugins.svn.wordpress.org/more-fields' ) ));
You can optionally specify a
base_uri to run wordpress in a sub directory or on a non standard port.
The plugins setting allows you to specify any plugins that you would like Pomander to deploy.
Plugins can be pulled down from multiple locations, check the example to the right to see them all.
Pomander attempts to use a cleaner and safer structure to keep things sane.
deploy/ public/ --- themes/ --- uploads/ vendor/ --- plugins/ wordpress/ wp-config.php
wp-config.php is kept out of the wordpress folder for added security.
Keep your wordpress themes in
Plugins are automatically deployed to
Wordpress core is kept completely isolated in its own folder. Make sure when you are setting up your web server virtual host, you point the document root to the wordpress folder.