Saltar al contenido

Qué es WP CLI y cómo funciona

Qué es WP CLI y cómo funciona
5 (100%) 1 vote[s]

WP CLI es una interfaz de línea de comandos que te permite instalar, configurar y mantener tu WordPress usando sólo un terminal.

Aunque el uso de la línea de comandos puede parecer muy rebuscado, con este artículo cambiarás de opinión, pues te mostraremos lo útil que puede ser el terminal usando (también) este comando.

Trabajando con WordPress es probable que ya hayas probado herramientas disponibles en la línea de comandos, como GIT o SVN, que te ayudan a gestionar diferentes versiones de tu código.

La instalación de WP CLI requiere la posibilidad de utilizar un terminal, de hecho, es esencial para su uso.

Si utilizas Mac o Linux, encontrarás que ya está instalado y probablemente ya lo hayas utilizado. Para Windows, esto es ligeramente diferente.

Pero trabajar con un terminal también significa poder usar WP CLI directamente en tu servidor en línea abriendo una conexión SSH y ejecutando los comandos que encontrarás en esta lección.

Conocer SSH es muy útil

Si no conoces los conceptos básicos de las conexiones SSH, deberías leer algo al respecto.

Una simple lectura debería ser más que suficiente, porque seguramente tú también podrás conectarte a tu servidor online a través de este protocolo

Ahora sí, vayamos al corazón del artículo que describe el primer paso fundamental: instalar esta aplicación en tu sistema operativo.

Instalar WP CLI en el entorno de desarrollo

Una vez que abras tu terminal, la instalación de esta herramienta es realmente sencilla, todo lo que tienes que hacer es escribir la siguiente línea de código:

curl -O http://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Si no has recibido ningún mensaje de error, felicitaciones por haber instalado WP CLI!

Si usas MAMP y herramientas similares

El uso de MAMP algunas veces causa algunos problemas, pero en esta aplicación es muy conveniente y puede resultar una opción inteligente si, para aplicar alguna configuración avanzada, es necesaria alguna modificación.

También hay ahora mucha más disposición para usar soluciones integradas con Docker, mientras que  las soluciones GUI, como el antiguo MAMP, y el nuevo Local by FlyWheel quedan por detrás.

El principal problema es que MAMP no instala el lenguaje PHP en la posición por defecto, por el contrario, todos los programas necesarios para gestionar un servidor web están presentes dentro de la propia carpeta de la aplicación.

Para que WP CLI sea consciente de estas diferencias en nuestro entorno de desarrollo, es necesario añadir la ubicación del ejecutable PHP dentro del perfil de nuestro terminal.

Básicamente el archivo se encuentra dentro de tu carpeta de usuario (el home, para ser claros) y se llama .bash_profile o .bashrc dependiendo de la configuración de tu sistema operativo.

Una vez que hayas abierto este archivo con cualquier editor de texto, esto es lo que necesita poner dentro de él:

.perfil_bash
export WP_CLI_PHP=/Applications/MAMP/…/bin/php

Los tres puntos de la ruta, has de reemplazarlos con la ruta correcta al ejecutable de la versión PHP que estás utilizando, de lo contrario WP CLI no será capaz de funcionar correctamente.

Una vez realizado este cambio, lo que queda por hacer es forzar el final del proceso de carga para recargar este archivo dando el siguiente comando:

source ~/.bash_profile

Algo que notamos en nuestras experimentaciones, es que a veces WP CLI no es capaz de comunicarse directamente con el servidor MySQL que MAMP trae consigo.

Para resolver este problema te sugiero que abras de nuevo el archivo .bash_profile (o .bashrc) y añadas lo siguiente:

.perfil_bash
export PATH=$PATH:/Applications/MAMP/Library/bin

De esta manera se le indica a WP CLI todos los ejecutables que están presentes dentro de MAMP y, en el 99% de los casos, se resuelve cualquier problema de incompatibilidad.

Primeros pasos con WP CLI

En este punto, ya tienes en tus manos un terminal desde el cual puedes lanzar los comandos que veremos en este artículo.

Para seguir paso a paso los ejemplos que daremos en este artículo, sugerimos que crees una nueva carpeta vacía dentro de tu entorno de desarrollo local (también puedes trabajar con instalaciones online una vez conectadas a través de SSH, pero por el momento haremos las cosas más sencillas).

Lo que tiene que hacer ahora es ir a la carpeta recién creada y ejecutar el siguiente comando:

wp-info

Si WP CLI se ha instalado correctamente, recibes un mensaje similar a éste:

PHP binary: /Applications/MAMP/bin/php/php5.3.27/bin/php 
PHP version: 5.3.27 
php.ini used: /Applications/MAMP/bin/php/php5.3.27/conf/php.ini 
WP-CLI root: /Users/andreabarghigiani/.wp-cli/vendor/wp-cli/wp-cli 
WP-CLI config: 
WP-CLI version: 0.12.1

Como puedes ver, la respuesta que WP CLI nos da es simplemente una lista de archivos usados por el propio programa.

Te sugiero que compruebes de nuevo que las rutas al binario de PHP y su archivo de configuración son correctas porque la diversión está a punto de comenzar.

¡No puedo recordarlo todo!

Esta es sin duda una de las excusas más comunes cuando se trata de cambiar nuestros hábitos de un mundo lleno de interfaces gráficas a uno menos animado.

Esto es importante porque quizá pensabas que tendrías un icono al que llegar para ser más práctico y querrás recordar docenas de órdenes de memoria sin lograrlo.

Por suerte, trabajar con WP CLI no significa tener en cuenta los nombres de los comandos que necesitamos, sino saber dónde buscarlos.

La tarea es muy sencilla, ya que para obtener la lista de estos comandos sólo tienes que teclear en el terminal el comando principal: wp.

Una vez que hayas introducido estas dos letras y pulsado la tecla Enter, se te presentarán una serie de subcomandos que podrás utilizar junto con estas letras.

Los más interesantes, y que veremos en este artículo, son:

  • core – con este comando puedes descargar, instalar, actualizar cualquier versión de WordPress que quieras usar.
  • plugins – un conjunto de herramientas útiles que te permitirán instalar, actualizar, habilitar, deshabilitar y desinstalar cualquier plugin de WordPress.
  • theme – como arriba pero para los temas.
  • db, export e import – estos son subcomandos individuales pero preferimos agruparlos en un solo grupo debido a que todos realizan operaciones con tu base de datos.

Dejamos de lado muchos comandos interesantes, también porque pueden aumentar dependiendo de los plugins instalados, pero puedes entender por ti mismo que puedes manejar tu WordPress sin siquiera tener que entrar en el Escritorio.

Ahora vamos a conocer cómo se utilizan los comandos más comunes.

Instalar WordPress desde la línea de comandos WP CLI

En esta sección te mostramos cómo puedes descargar, configurar e instalar WordPress en sólo unos segundos y sin tener que quitar las manos del teclado.

¿Te parece demasiado bueno para ser verdad? No te preocupes, no estás soñando, ¡es verdad!

Comencemos la instalación descargando WordPress.

Cómo descargar WordPress con WP CLI

Volvamos a la carpeta recién creada y en este punto sólo tienes que ejecutar el siguiente comando y dejar que WP CLI se preocupe de descargar y descomprimir la última versión de WordPress:

wp core download

Tres simples palabras escritas en un terminal que te permitirán:

  • Evitar abrir wordpress.org para descargar la última versión de WordPress en formato.zip;
  • Evitar extraer el contenido del archivo y copiarlo en la carpeta del entorno de desarrollo;
  • Evitar borrar el archivo.zip y utilizar el navegador para ir a la pantalla de instalación de WordPress.

Con un simple comando encontrarás todo listo en la carpeta en la que estás trabajando.

Ahora veamos cómo proceder con la instalación.

Configurar antes de la instalación

Como ya estamos acostumbrados con el asistente de instalación de WordPress, antes de poder instalar esta plataforma debemos proporcionar la información necesaria para la correcta configuración que, en pocas palabras, se traduce en indicar a WordPress qué base de datos puede utilizar y con qué credenciales de acceso.

En este artículo asumimos que sabes cómo crear una base de datos, pero si encuentras algún problema, no dudes en ponerte en contacto.

Para configurar tu nueva instalación de WordPress puedes dejar que WP CLI genere por ti el archivo wp-config.php con el siguiente comando:

wp core config

Como puedes ver, una vez más, el comando wp core demuestra su utilidad pero, si intentaste ejecutar este comando, lo más probable es que recibieras un error.

Este error no es lanzado por una falta tuya, sino porque aún no sabes que este comando acepta varios parámetros, el más útil será:

  • –dbname – que especifica el nombre de la base de datos que deseas utilizar;
  • –dbuser – el nombre de usuario que tendrá acceso a la base de datos;
  • –dbpass – tu contraseña;
  • –dbhost – la URL que permite acceder a la base de datos (para especificar sólo si es diferente de la URL de tu sitio);
  • –dbprefix – el prefijo de la tabla que deseas utilizar (también debes especificar si deseas dificultar a los hackers la comprensión de la tabla que utiliza WordPress).

Así que, en su forma mínima, el comando anterior se verá así:

wp core config –name=nomedb –dbuser=adminmysql –dbpass=pswadminmysql

Tal vez un poco más complicado que el primer comando que vimos, pero ahí es donde está su belleza. Por cada comando que veas puedes ir y crear un script que te permitirá hacerlo mucho más fácil.

Para crear un script de este tipo, basta con crear cualquier archivo con extensión .sh y, para poner un ejemplo, esto es lo que deberías poner dentro de él para crear algo más «humano»:

#!/bin/bash
printf "¿Cuál es el nombre de la base de datos a utilizar?"
read DBNAME 
printf "¿El nombre de usuario que puede acceder?"
read DBUSER 
printf "¿Tu contraseña?" 
read DBPASS
wp core config –dbname=$DBNAME –dbuser=$DBUSER –dbpass=$DBPASS

Eso es todo. Ahora, cuando ejecutes este script el terminal, te pedirá los datos necesarios para permitir la instalación de WordPress sin ni siquiera tener que recordarle cómo declarar los parámetros individuales.

Ahora si, a instalar

Concluimos esta guía con el comando que te permitirá instalar un nuevo WordPress en unos segundos.

¿Te apetece intentar decir qué comando debería usarse? ¡¿No?! No hay problema, aquí está el comando que necesitas:

wp core install

Una vez más, vemos que el comando wp core es realmente muy útil en esta fase de desarrollo. Pero, si intentabas ejecutar este comando el terminal habrá devuelto un error y, una vez más, la razón es que no te hemos presentado los parámetros que este comando requiere:

  • –url – que te permite identificar la URL utilizada para esta instalación de WordPress;
  • –title – obviamente el título de nuestro nuevo CMS;
  • –admin_name – el nombre de la cuenta de administración;
  • –admin_email – el correo electrónico…
  • –admin_password – y tu contraseña.

En definitiva, sólo nos pide la información necesaria para finalizar la instalación y nos proporciona una cuenta con la que poder gestionar el nuevo sistema.

wp core install –url=tudominio.com –title=Ejemplo –admin_user=super –admin_password=strongpassword –admin_email=info@tudominio.com

Obviamente, como hemos mostrado anteriormente para la configuración, puedes crear un nuevo script que te permita introducir esta información sin necesidad de recordar uno por uno cada parámetro, o puedes crear un único script que te permita realizar una instalación de WordPress en pocos segundos.

Otras operaciones interesantes con WP CLI

Reconozco que, por el momento parece que no has hecho nada especial, porque todo lo que hemos hecho es instalar WordPress con una nueva herramienta. Por eso he decidido añadir esta sección.

Por el momento, tener WP CLI disponible no parece una gran ventaja, hay que escribir comandos largos para hacer operaciones comunes y triviales.

Pero WP CLI es mucho más que eso. Es una herramienta que te permitirá administrar completamente tu instalación de WordPress sin tener que acceder al panel de administración.

Aquí hay algunos casos de uso que resultan increíblemente útiles.

Actualización de temas y plugins

WordPress ofrece potentes herramientas para actualizar temas y plugins, pero siempre son herramientas dentro de tu Escritorio y esto significa tener que acceder al sitio e iniciar sesión.

Al conectarte a tu servidor online a través de SSH podrás ejecutar los siguientes comandos ahorrando mucho tiempo.

Para actualizar todos los plugins a la vez, es necesario insertarlos:

wp plugin update –all

Para los temas el comando es muy similar:

wp theme update –all

Con dos comandos simples has podido actualizar temas y plugins.

Algo similar puedes hacer con el núcleo de WordPress, con el comando wp core update, pero quizás lo más interesante es que estos comandos te permiten insertar más opciones.

Por ejemplo, la opción –all es un atajo que nos permite actualizar todos los paquetes afectados pero también podemos excluir algunos (con –exclude) o instalar solo algunos, quitando –all y escribiendo el nombre de lo que queremos instalar.

Crear un usuario

Incluso la creación de un usuario es relativamente simple cuando se utiliza el terminal, todo lo que necesitas hacer es ejecutar el siguiente comando:

wp user create –prompt

Si vas a ver la página de documentación de este comando, éste también tiene muchas opciones que podemos usar, pero en este ejemplo he elegido un enfoque diferente.

Con este ejemplo queremos mostrarte cómo hacer que el terminal pida la información necesaria, y esto es tan simple como escribir –prompt.

En este punto el terminal te pedirá tu nombre, correo electrónico, contraseña y toda la información necesaria para crear un nuevo usuario.

Reemplazar texto en la base de datos

Mover un sitio WordPress de un dominio a otro no es una tarea fácil. Por supuesto, podemos utilizar un simple script PHP para realizar la búsqueda y sustitución de cadenas específicas en nuestra base de datos.

En el siguiente ejemplo nos referimos a dominios, pero este comando puede ser usado para reemplazar cualquier cadena en la base de datos, y te recomendamos que hagas una copia de seguridad antes de cualquier operación.

wp search-replace http://0.0.0.0:8080 https://skillsandmore.org

El código anterior te muestra cómo usar el comando search-replace para reemplazar el dominio en el entorno de desarrollo por lo que será el dominio online.

Ten cuidado de que con este comando se sobrescriba la información contenida en la base de datos de instalación de WordPress, contenida en la carpeta desde la que ejecuta el comando.

Si deseas crear un archivo.sql para importarlo posteriormente al servidor online, deberás utilizar la opción -export para crear una nueva base de datos que contenga el reemplazo.

wp search-replace http://0.0.0.0:8080 https://skillsandmore.org –export=db-locale.sql

Una vez ejecutado este último comando, encontrarás el archivo db-locale.sql en la carpeta desde la que lo lanzó, listo para importarlo al servidor online con phpMyAdmin o (por qué no) directamente con WP CLI.

Conclusión

Sabemos que todavía hay una serie de comandos por conocer, pero no quisiéramos ir demasiado lejos con este artículo introductorio.

Ahora que has leído el artículo, nos gustaría conocer tu opinión, ¿Has intentado usar la terminal? ¿ Qué te parece?

No dudes en compartir este contenido con alguien que necesita consejo.

Recomendamos que tomes coraje y utilices esta herramienta con frecuencia, ya que acelera increíblemente la gestión de esta plataforma.

<!– –>