Cómo crear comandos personalizados en WP-CLI

Cómo crear comandos personalizados en WP-CLI

Aprende a crear comandos personalizados en WP-CLI para automatizar tareas, ampliar WordPress y trabajar más rápido desde consola.

WP-CLI no solo sirve para gestionar WordPress desde la terminal: también permite extender su funcionalidad con comandos personalizados. Esto resulta especialmente útil cuando repites procesos internos, mantienes varios sitios o necesitas convertir una tarea técnica en un flujo rápido y estandarizado.

Si ya dominas los comandos básicos y las tareas más habituales, este paso te lleva un nivel más allá. En artículos anteriores vimos cómo usar WP-CLI para administrar WordPress de forma general, automatizar tareas con cron o trabajar en scripts bash. Ahora vamos a centrarnos en cómo crear tus propios comandos para que la consola se adapte a tu forma de trabajar, no al revés.

Qué es un comando personalizado en WP-CLI

Un comando personalizado es una orden que tú defines y que WP-CLI puede ejecutar como si formara parte del sistema. En lugar de escribir una secuencia larga de instrucciones cada vez, encapsulas esa lógica en una clase o en un archivo PHP y la reutilizas cuando quieras.

La ventaja es doble: ahorras tiempo y reduces errores humanos. En entornos con mucho mantenimiento, despliegues frecuentes o varias instalaciones, esto encaja muy bien con lo que ya vimos en la guía de gestión de múltiples instalaciones con WP-CLI y con los comandos avanzados de WP-CLI.

Casos de uso habituales

Los comandos personalizados son ideales para tareas repetitivas como generar reportes, limpiar opciones específicas, validar configuración, sincronizar datos entre entornos o lanzar rutinas internas de mantenimiento.

También son una buena forma de estandarizar operaciones cuando varias personas trabajan sobre el mismo proyecto. En vez de depender de que cada miembro recuerde una serie de pasos, defines un comando claro, documentado y reutilizable.

Cómo funciona la extensión de wp-cli

WP-CLI permite registrar comandos mediante código PHP. A nivel práctico, eso significa que puedes crear una clase, asociarla a un nombre de comando y definir métodos para subcomandos o acciones concretas.

La estructura es sencilla: WP-CLI carga tu archivo, registra la clase y te deja invocarla desde la terminal con una sintaxis coherente. Esto es especialmente útil cuando desarrollas herramientas internas para un plugin o un entorno de despliegue.

Antes de crear un comando nuevo, conviene tener claro dónde lo vas a ejecutar. Si trabajas en despliegues automatizados, te interesará apoyar esta práctica con lo aprendido en despliegues automáticos de WordPress con WP-CLI y, si recurres a scripts, con WP-CLI en scripts bash.

Creando tu primer comando personalizado

Una de las formas más habituales de extender WP-CLI es crear un archivo PHP dentro de un plugin propio o de un mu-plugin. Así mantienes el comando versionado junto al proyecto y no dependes de una instalación aislada en el servidor.

El siguiente ejemplo muestra una base sencilla para registrar un comando que saluda y acepta un argumento. No pretende ser complejo, pero sí ilustrar la estructura mínima.

<?php
if (defined('WP_CLI') && WP_CLI) {

    /**
     * Comando personalizado para WP-CLI.
     */
    class Mi_Comando_CLI {

        /**
         * Ejecuta el comando.
         *
         * ## OPTIONS
         *
         * [--nombre=<texto>]
         * : Nombre a mostrar en la salida.
         *
         * ## EXAMPLES
         *
         *     wp mi-comando saludar --nombre=Ana
         */
        public function saludar($args, $assoc_args) {
            $nombre = $assoc_args['nombre'] ?? 'mundo';

            WP_CLI::success("Hola, {$nombre}");
        }
    }

    WP_CLI::add_command('mi-comando', 'Mi_Comando_CLI');
}

En este caso, el comando se invocaría como wp mi-comando saludar –nombre=Ana. La salida, además, usa las utilidades de WP-CLI para mostrar mensajes más claros en consola.

Cuándo usar una clase y cuándo una función

Para un ejemplo rápido, una función aislada puede parecer suficiente. Pero si el proyecto crece, una clase ofrece mejor organización, facilita añadir más subcomandos y mejora la legibilidad del código.

Si tu idea es crear una herramienta reutilizable, piensa en términos de arquitectura: nombre del comando, subcomandos, validación de argumentos y salida consistente. Esa mentalidad evita que el código se convierta en un parche difícil de mantener.

Organización del código y buenas prácticas

Un error común al crear comandos personalizados es mezclar demasiada lógica en un único método. Lo más recomendable es separar responsabilidades: una parte para validar entradas, otra para ejecutar la tarea y otra para informar del resultado.

También es buena idea usar nombres descriptivos. Si tu comando automatiza una acción de mantenimiento, el nombre debería dejarlo claro. Así, cualquiera que vea el comando puede entender su propósito sin abrir el archivo PHP.

Validación y mensajes de salida

La validación es clave cuando el comando recibe parámetros. Si esperas una ruta, un ID o una URL, comprueba siempre que el valor existe y tiene el formato esperado antes de continuar. Un comando personalizado debe ser útil, pero también seguro y predecible.

En cuanto a los mensajes, WP-CLI ofrece formas simples de comunicar éxito, error o advertencia. Usarlas bien mejora mucho la experiencia desde consola, sobre todo cuando el comando se integra en automatizaciones o pipelines.

Registra comandos con intención

No conviertas WP-CLI en un contenedor de lógica de negocio enorme. Es mejor registrarlo para tareas operativas, administrativas o repetitivas. Si una operación pertenece al dominio de tu plugin, puedes usar el comando como interfaz de mantenimiento, no como sustituto de la arquitectura principal.

Este enfoque encaja especialmente bien con flujos donde ya gestionas backups, bases de datos o contenido desde terminal, como en hacer un backup de WordPress con WP-CLI o en exportar e importar la base de datos con WP-CLI.

Cómo integrarlo en un plugin o mu-plugin

La forma más práctica de distribuir comandos personalizados es incluirlos en un plugin propio. Así los despliegas junto con el código del proyecto y evitas copiar archivos manualmente en cada servidor.

Si el comando es crítico para operaciones internas, un mu-plugin puede ser todavía más adecuado, porque carga siempre con WordPress. Esto resulta útil en entornos donde quieres garantizar que la utilidad esté disponible incluso antes de activar plugins convencionales.

En proyectos avanzados, esta estrategia se combina bien con mantenimiento programado, tareas de consola y automatización. De hecho, si ya trabajas con cron, puedes revisar la guía sobre automatizar tareas de WordPress con WP-CLI y cron para ver cómo encaja todo.

Errores frecuentes al crear comandos personalizados

Uno de los fallos más comunes es asumir que el entorno será siempre idéntico. En la práctica, un comando puede ejecutarse en local, staging o producción, así que conviene evitar dependencias frágiles, rutas absolutas innecesarias o supuestos sobre el contenido del sitio.

Otro error habitual es no documentar el comando. Añadir ejemplos de uso y descripciones de parámetros te ahorrará tiempo a futuro, tanto si lo usas tú solo como si lo compartes con un equipo.

También merece atención la compatibilidad. Si tu flujo depende de múltiples sitios o de instalaciones gestionadas en paneles como Plesk o cPanel, revisa cómo se comporta la consola en cada caso. Puedes apoyarte en esta guía práctica sobre WP-CLI en Plesk o cPanel para tener un contexto más amplio.

Conclusión

Crear comandos personalizados en WP-CLI es una evolución natural para cualquier usuario que ya haya pasado de lo básico a la automatización real. Te permite convertir procesos repetitivos en herramientas reutilizables, mejorar la consistencia operativa y ahorrar tiempo en tareas de mantenimiento.

Si ya trabajas con WP-CLI para instalar, actualizar, exportar bases de datos o gestionar usuarios, dar este paso te ayudará a construir un flujo más profesional y escalable. En definitiva, no se trata solo de ejecutar comandos: se trata de diseñar tu propia capa de productividad sobre WordPress.

Fuentes y lecturas recomendadas

WP-CLI Handbook oficial

Referencia de comandos de WP-CLI en la documentación de WordPress

Noticias y actualizaciones oficiales de WordPress

Xose de la Paz

Más de 20 años transformando pasión en profesión. Experto en desarrollo Full Stack con una visión integral que abarca desde la gestión de servidores y redes hasta el diseño de interfaz. Soy un "todoterreno" tecnológico que cree en el aprendizaje continuo y la visión global de los proyectos. Entre despliegue y despliegue, me pierdo por el mundo con mi cámara al hombro.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies