Blog sobre desarrollo WordPress en Español Desarrollo WordPress en Español
WP-CLI

WP-CLI Parte 10, crea tus propios comandos

 

Décima y última entrega de la serie de WP-CLI. Hasta ahora hemos visto cómo trabajar con los comandos más útiles, e incluso cómo instalar paquetes de terceros. En esta entrada vamos a ver cómo crear nuestros propios comandos.

Creando nuestros propios comandos podremos automatizar tareas y/o procesos del día a día, o cubrir una necesidad específica nuestra, y ser más productivos.

Los paquetes de comandos (Packages) son a WP-CLI lo que los plugins son a WordPress. Como lo más práctico es verlo con un ejemplo, voy a comentar sobre el ejemplo básico que hay en la documentación oficial, los pasos que hay que seguir para crear nuestro propio comando:

<?php /** * Implements example command. */ class Example_Command extends WP_CLI_Command { /** * Prints a greeting. * * ## OPTIONS * * <name> * : The name of the person to greet. * * [--type=<type>] * : Whether or not to greet the person with success or error. * --- * default: success * options: * - success * - error * --- * * ## EXAMPLES * * wp example hello Newman * * @when after_wp_load */ function hello( $args, $assoc_args ) { list( $name ) = $args; // Print the message with type $type = $assoc_args['type']; WP_CLI::$type( "Hello, $name!" ); } } WP_CLI::add_command( 'example', 'Example_Command' );

Como puede observarse, existe una clase WP_CLI_Comand, sobre la que podemos crear nuestra propia clase y extender de ella. Simplemente tendríamos que crear una clase nuestra (en el ejemplo Example_Command, y extender de WP_CLI_Comand., y escribir nuestros propios métodos.

Añadiremos el comando simplemente instanciando add_command, y estableciendo el identificador de nuestro comando:

WP_CLI::add_command( 'example', 'Example_Command' );

Así, cuando en nuestra consola escribamos wp example, se ejecutará nuestro comando.

A la hora de escribir un comando, las anotaciones PHPDoc entran en juego, es decir, los comentarios tienen un objetivo. Como puede observarse, tenemos un método que se llama hello, y que tiene una serie de comentarios en PHP. Desgranando un poco:

 

Shortdesc

La descripción corta del comando la marca la primera línea del comentario PHPDoc:

/** * Prints a greeting.

 

Longdesc

La descripción larga, o el detalle completo de información, es la parte media del comentario PHPDoc:

 * ## OPTIONS * * <name> * : The name of the person to greet. * * [--type=<type>] * : Whether or not to greet the person with success or error. * --- * default: success * options: * - success * - error * --- * * ## EXAMPLES * * wp example hello Newman

Esta información es valiosa, por ejemplo cuando un usuario escriba wp example --help en consola, aparecerá toda esta información.

 

Docblock tags

Esta es la última sección de los comentarios PHPDoc

 * @when after_wp_load */

Aquí, pueden definirse varias etiquetas, vamos a ver algunas de ellas:

 

@subcommand

Para indicar el nombre de un subcomando cuando no puedes nombrarlo igual que una palabra reservada de PHP. Por ejemplo list es una palabra reservada de PHP que bien podría utilizarse como un subcomando, pero no podemos crear un método de nuestra clase con este nombre:

/** * @subcommand list */ function _list( $args, $assoc_args ) { ... } 

 

@alias

Con alias, podemos definir otra manera de llamar al subcomando. Por ejemplo, en lugar de llamar al subcomando wp example hello, podríamos crear un alias más corto que fuera wp example hi:

/** * @alias hi */ function hello( $args, $assoc_args ) { ... } $ wp example hi Joe Success: Hello, Joe! 

 

@when

Esta etiqueta indica a WP-CLI cuando ejecutar el comando. Acepta todos los hooks registrados en WP-CLI:

 

@when after_wp_load // Para ejecutar nuestro comando después de que cargue WordPress @when before_wp_load // Para ejecutar nuestro comando antes de que WordPress sea cargado.

 

Esto es lo básico para entender cual es el camino a seguir para crear nuestros propios comandos. Toda la información y ejemplos más concretos los puedes encontrar en la documentación oficial a la que he hecho referencia anteriormente.

Hasta aquí la serie de entradas relativas a WP-CLI. Como habrás podido ver es una herramienta muy útil que te permite automatizar tareas y aumentar tu productividad. Tiene muchos más comandos de los que yo he comentado, te invito a que visites la web oficial y eches un vistazo por tu cuenta….y sobre todo practica.

Al principio puede echar para atrás, pero después de probarlo y tener un poco de soltura, te preguntarás cómo era posible que estuvieras viviendo sin esto.

Puede que también te interese

Cómo solucionar el error 404 en WordPress
Cómo solucionar el error 404 en WordPress
El error 404 o de página no encontrada es uno de los errores más comunes, no sólo en WordPress. Puede darse por multitud de razones,…
Elimina las columnas de Yoast SEO en los listados de posts
Elimina las columnas de Yoast SEO en los listados de posts
Es bastante probable que hayas utilizado un plugin para trabajar el SEO de tu web, o la de alguno de tus clientes. De hecho mucha…
Evitar la enumeración de usuarios en WordPress: bola extra
Evitar la enumeración de usuarios en WordPress: bola extra
Hace unos meses escribí en dos entradas cómo evitar la enumeración de usuarios o user enumeration (parte 1 y parte 2). Ahora viene la bola extra:…
Cómo evitar la actualización de plugins concretos en WordPress
Cómo evitar la actualización de plugins concretos en WordPress
Si has hecho desarrollos a medida en WordPress seguramente te has encontrado en alguna ocasión con la siguiente situación: Te han pedido un desarrollo en…