Wp cli-wcbalt

Post on 10-May-2015

236 views 0 download

Tags:

transcript

LazyPressDeveloping for WordPress

on the Command Line

Why CLI?

•All Keyboard Commands

•Efficient

•Fast

•Does Not Require the Web Server resources

Installing WP-CLI

> curl http://wp-cli.org/installer.sh | bash

> PATH=$HOME/.composer/bin:$PATH

> source $HOME/.composer/vendor/wp-cli/wp-cli/utils/wp-completion.bash

Using the wp command

•wp core (config|download|install|update)

•wp comment (approve|count|spam|trash)

•wp export

•wp option (add|update|delete|get)

•wp plugin (install|activate|list|update)

•Etc

Extending WP-CLI

•if( defined( ‘WP_CLI’ ) && WP_CLI )

•Extend WP_CLI_Command

•Public methods become commands

•Methods take $args and $assoc_args

Extending WP-CLI

•$args is an array of positional elements

•e.g. wp command Hello World

•$args[0] == ‘Hello’

•$args[1] == ‘World’

Extending WP-CLI

•$assoc_args is an array of flags

•e.g. wp command --foo=Hello --bar=World

•$assoc_args[‘foo’] == ‘Hello’

•$assoc_args[‘bar’] == ‘World’

Declaring Syntax

•Methods should have a Docblock using @synopsis

•Square brackets designate optional

•@synopsis cmd <foo> --bar=<bar> [--baz=<baz>]

Printing to the CLI

•Use the line() method from the WP_CLI class

•WP_CLI::line(‘Hello World is a Success!’);

Defining the Command

•Use the add_command() method from the WP_CLI class

•Argument 1 is the command name

•Argument 2 is the Class name

•WP_CLI::add_command( ‘hello’, ‘world’);

•Running wp hello instantiates the world class

Resources

•WP-CLI - http://wp-cli.org

•WP-CLI on Github - http://github.com/wp-cli

•Sample Code - https://github.com/technosailor/baltimorephp-wpcli

•BreweryDB - http://brewerydb.com

Credits•“Boh” photo by Sidewalk Flying on

Flickr

•“Crab” and “Aquarium” photos by WallyG on Flickr

•“Oriole Bird” photo by Keith Allison on Flickr

•All photos used under the Creative Commons License