En este artículo quiero enseñarte cómo añadir WP-CLI a tu proyecto de WordPress trabajando en un entorno local de desarrollo.
Para ello, vamos a utilizar el entorno que montamos en el post anterior que trata sobre cómo trabajar WordPress con Docker en localhost, lo actualizaremos añadiendo el servicio de WP-CLI en su docker-compose.
Breve introducción a WP-CLI
Para los que no la conozcáis, WP-CLI es una poderosa herramienta que nos permite interactuar con nuestra instalación de WordPress para realizar numerosas operaciones.
Lo buena de trabajar con un CLI (Command Line Interface) es que estamos operando a un nivel más bajo, y por tanto más preciso, que con una interfaz gráfica.
Esto nos da más rapidez y seguridad en las interacciones que realizamos con WordPress, algunas de esas interacciones son:
Instalar plugins y themes
Exportar e importar la base de datos y realizar reemplazo de cadenas en ella
Regenerar miniaturas de forma masiva
Gestión de usuarios y roles
Y muchas más cosas que podrás averiguar por ti mismo/a en el enlace a la documentación oficial que te dejo al final de este post.
Como puedes observar, para integrar el servicio de WP-CLI en nuestro proyecto sólo nos hacen falta unas pocas líneas de código. Voy definiendo la estructura de este nuevo servicio:
image: Aquí hacemos pull directamente del repositorio de Docker Hub para descargar la imagen de WP-CLI.
container_name: Este es el nombre del contenedor en nuestro stack de docker-compose
Date cuenta que estoy utilizando la variable de entorno ${PROJECT_NAME} definida en el archivo .env que creamos en el post anterior.
volumes: En este parámetro del servicio le indicamos qué carpeta de nuestra máquina tiene que mapear con qué carpeta del contenedor.
Debe ser la misma carpeta de nuestra máquina donde se encuentra la instalación de WordPress
Una vez definido el servicio, levanta el proyecto entero con docker-compose up –build.
Ahora dirígete a otra consola, sitúate en la raíz del proyecto y ejecuta:
docker-compose run --rm dockerwp_wpcli plugin list
Con este comando le estamos diciendo a docker-compose que ejecute el servicio dockerwp_wpcli y seguido, pasamos los parámetros propios de wp-cli:
En este caso, con los parámetros de WP-CLI utilizados, hemos listado los plugins instalados en nuestro WordPress.
Ahora bien, seguro que estas pensando: Vaya churro de comando tengo que escribir para ejecutar cualquier comando de WP-CLI.
Lo se, es muy poco estético y difícil de memorizar, ten en cuenta que lo que hacemos es realizar la llamada al contenedor de WP-CLI para ejecutar sus comandos, por ello esta sintaxis tan larga.
No te preocupes, vamos a mejorar esto creando un alias en nuestro sistema. En mi caso, al usar macOS, mi archivo de configuración donde debo definir los alias es ~/.zshrc, así que lo abro para modificarlo:
vim ~/.zshrc
Al final de este archivo voy a añadir la siguiente línea:
alias dockerwp="docker-compose run --rm dockerwp_wpcli"
Quedando el final del archivo de la siguiente forma:
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
alias dockerwp="docker-compose run --rm dockerwp_wpcli"
Ahora guardamos los cambios y ejecutamos el siguiente comando para que el nuevo alias sea reconocido como variable de entorno de nuestro sistema:
source ~/.zshrc
Sólo nos queda probar nuestro nuevo alias, ve a la raíz del proyecto a través de la consola y, donde esta el archivo docker-compose, ejecuta:
dockerwp plugin list
Tal y como puedes observar, ya no te hace falta escribir todo el comando anterior para utilizar WP-CLI en este proyecto:
Quiero que te fijes en que el alias que hemos definido, sólo sirve para el proyecto de docker de “dockerwp”, si tienes otro proyecto de docker con WP-CLI y quieres utilizar un alias también tendrás que definirlo como hemos hecho con este.
Conslusión
Trabajar WordPress desde línea de comandos con WP-CLI hace que ciertas tareas se ejecuten más rápido y de manera más segura que haciéndolas desde el navegador web.
Y no sólo eso, también nos aporta funcionalidades que sólo las conseguimos haciendo uso de plugins de terceros, como puede ser el caso de regenerar miniaturas o realizar operaciones sobre la base de datos de WordPress.
A parte de los ejemplos de operaciones que he citado al comienzo de este post, tienes docenas de comandos disponibles para hacer cosas realmente útiles con tu WordPress, puedes echar un vistazo en la web oficial: