5. Extending WP-CLI
• if( defined( ‘WP_CLI’ ) && WP_CLI )
• ExtendWP_CLI_Command
• Public methods become commands
• Methods take $args and $assoc_args
6. Extending WP-CLI
• $args is an array of positional elements
• e.g. wp command Hello World
• $args[0] == ‘Hello’
• $args[1] == ‘World’
7. 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’
8. Declaring Syntax
• Methods should have a Docblock using
@synopsis
• Square brackets designate optional
• @synopsis cmd <foo> --bar=<bar> [--
baz=<baz>]
9. Printing to the CLI
• Use the line() method from the WP_CLI
class
• WP_CLI::line(‘Hello World is a Success!’);
10. 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