blog webempresa

Guía de WP-CLI en WordPress, Qué es y Cómo usarlo

por | Mar 24, 2023 | Tutoriales WordPress Avanzados

Guía de WP-CLI, qué es y cómo usarlo

Cuando hablamos de un CMS como WordPress siempre pensamos en un software que nos permite crear sitios web o blog de forma sencilla; sin embargo, WordPress es un sistema mucho más avanzado que nos permite crear sitios web únicos y administrador de forma sencilla con las herramientas que tenemos disponibles en nuestros ordenadores o servicio de alojamiento WordPress.

Hoy estaremos viendo una de estas herramientas que nos permiten administrar de forma sencilla nuestros sitios web en WordPress utilizando algunas opciones más avanzadas, pero que nos permiten tener control total sobre lo que sucede en nuestro WordPress.

 ¿Qué es WP-ClI?

WP-CLI (según la documentación de WordPress) es una interfaz de línea de comando que podemos utilizar en WordPress para realizar algunas acciones en su configuración como actualizar plugins en WordPress, configurar alguna instalación multisitio entre otras cosas sin la necesidad de utilizar un navegador web.

Esta herramienta es utilizada usualmente por desarrolladores con conocimientos avanzados de programación, ya que toda su funcionalidad se basa en la utilización de pequeñas líneas de código, este proyecto fue iniciado y mantenido principalmente por Daniel Bachhuber desde 2003 su principal objetivo es poder facilitar el proceso y flujo de trabajo de los desarrolladores de WordPress.

 ¿Cómo empezar con WP-Cli en WordPress?

Lo primero que tenemos que hacer antes de comenzar a usar WP-ClI en WordPress es conocer un poco más sobre que es una interfaz de comando, la interfaz de comando (CLI) no es más que una interfaz de usuario (UI) basado en texto que nos permite ejecutar comandos y administrador archivo en nuestro ordenador. Esta interfaz también es denominada interfaces de usuario de línea de comandos o interfaces de usuario de consola.

Sus características principales es presentar una ventana en cuando “negro” con el texto, el blanco donde podremos añadir nuestras líneas de código para ejecutar tareas en nuestro ordenador

Interfaz de línea de comandos

Una vez tenemos un poco claro sobre como es una interfaz de línea de comandos podemos dar el siguiente paso para su utilización en la administración de WordPress, cuando utilizamos nuestras instalaciones dentro de los alojamientos de hosting, en algunas ocasiones será necesario conectarse a través de SSH (Secure Shell) por lo que tendrás que comprobar si tienes esta opción habilitada o si la misma puede habilitarse de acuerdo a tu plan de alojamiento.

Una de las ventajas principales de su uso son:

  • Nos permite tener un control granular de nuestra aplicación.
  • Nos permite gestionar de forma más rápida nuestro sitio web en WordPress.
  • Nos permite automatizas tareas para nuestro sitio web.

Sin embargo, una de sus desventajas podemos decir es que su interfaz no es sencilla, ya que tenemos que usar líneas de comando para ejecutar las tareas, mientras que en una interfaz GUI es más fácil de utilizar y la curva de aprendizaje puede ser mucho más corta y sencilla.

 Comandos de WP-Cli para WordPress

Como hemos visto a en los puntos anteriores WP-Cli utiliza una serie de comandos para poder ejecutar cualquier acción dentro de nuestro sitio web, si estamos un poco familiarizados sobre el uso de la interfaz de comandos CLI podremos comenzar a utilizar algunos de los comandos básicos para comenzar a ejecutar tareas en nuestro sitio web.

WP-Cli ya viene con una serie de comando incorporado que podemos usarlos; sin embargo, si tienes conocimientos avanzados puedes ampliarlos para utilizar tus propios comandos y así utilizarlo dentro de tu instalación.

 Conoce más sobre las herramientas compatibles con WP-CLI en su manual oficial de WordPress.

Veamos algunos comandos básicos que podemos usar dentro de nuestro sitio web, por ejemplo supongamos que queremos ver todos los plugins instalados en nuestra instalación, para ello solo bastará con escribir la siguiente línea de comando.


wp plugin list

Estos nos mostrará el listado completo de plugin en nuestro sitio web y si los mismos están activos o no, así como cuáles actualizaciones tenemos disponibles y su versión.


+--------------------------------+----------+-----------+---------+
| name                           | status   | update    | version |
+--------------------------------+----------+-----------+---------+
| admin-bar-dashboard-control    | active   | none      | 1.2.6   |
| admin-bar-disabler             | inactive | none      | 1.4.2   |
| astra-hooks                    | inactive | none      | 1.0.2   |
| code-snippets                  | active   | none      | 3.3.0   |
| fix-another-update-in-progress | active   | none      | 1.0.1   |
| genesis-blocks                 | inactive | none      | 1.5.4   |
| header-footer-code-manager     | inactive | none      | 1.1.32  |
| hide-admin-bar                 | inactive | none      | 0.4.7   |
| scripts-n-styles               | inactive | none      | 3.5.2   |
| shortcodes-ultimate            | inactive | none      | 5.12.9  |
| woocommerce                    | active   | available | 7.4.0   |
| insert-headers-and-footers     | inactive | none      | 2.0.8.1 |
| wp-downgrade                   | active   | none      | 1.2.5   |
| wpforms-lite                   | active   | none      | 1.8.0.2 |
| wp-rollback                    | active   | none      | 1.7.3   |
+--------------------------------+----------+-----------+---------+

Ahora bien, supongamos que necesitemos desactivar un plugin especifico, en este caso podemos utilizar un comando muy sencillo que a través de estas líneas nos permite desactivar el plugin de WordPress que necesitamos, para ello podemos utilizar:


wp plugin deactivate nombre-del-plugin

Esto nos mostrará un mensaje con el resultado sobre su desactivación, por ejemplo algo como:

Desactivar plugin como comando WP-CLI


Plugin 'code-snippets' deactivated.                                                                                                                                                                          Success: Deactivated 1 of 1 plugins.

Ten en cuenta que el nombre del plugin debe ser como se encuentra dentro de la carpeta plugins ubicado en tu directorio principal wp-content/plugins

Nombre de plugin dentro de directorio wp-content WordPress

También podemos desactivar todos los plugins si es lo que necesitamos utilizando un comando como:


wp plugin deactivate --all

Ahora que sucede si en caso contrario quisiéramos instalar un plugin, en este caso solo necesitamos utilizar el mismo comando para desactivarlo, solo que utilizaremos “Install” en lugar de “deactivated”, sería algo como:


wp plugin install nombre_del_plugin

En este ejemplo podemos ver como podemos instalar WooCommerce de forma sencilla y activarlo en nuestra instalación utilizando un comando como:


wp plugin install woocommerce --activate

De esta forma podremos instalar de forma sencilla y rápida el plugin que necesitemos utilizado nuestra interfaz de comandos WP-CLI para WordPress.

Instalar plugin y activarlo con comando WP-CLI

 Conoce todos los comandos disponibles para WP-CLI en su documentación oficial

 Ejemplos de WP-CLI

Muy bien ya conocemos un poco más sobre como usar WP-ClI como podemos ver no es algo muy complicado, solo bastará conocer un poco como utilizar la interfaz de comando y cuáles son los comandos que necesitamos para ejecutar las tareas, configuraciones o acciones dentro de nuestro sitio web en WordPress.

Teniendo esto un poco más claro veamos algunos ejemplos adicionales para realizar algunas acciones básicas dentro de la administración de nuestro sitio web, uno de ellos puede ser la necesidad de instalar varios plugins al mismo tiempo.

Para realizar esto podemos utilizar un comando como:


wp plugin deactivate woocommerce code-snippets

Estos nos permitirá desactivar aquellos plugins que hemos indicado previamente en el comando con WP-CLI.

Desactivar varios plugins con comando WP-CLI

Ahora bien podemos gestionar solo opciones de plugins con WP-CLI la respuesta a esta pregunta es no, con WP-CLI podemos gestionar diferentes configuraciones y realizar diferentes acciones dentro de nuestro sitio web con WordPress, por ejemplo podemos gestionar los temas al igual que los plugins.

Por ejemplo podemos ver todos nuestros temas instalados con el siguiente comando:


wp theme list

Temas instalados con Wp Cli en WordPress

Si quisiéramos instalar un nuevo tema dentro de nuestro sitio web utilizando algún comando, para ello podemos buscar el tema que necesitamos y luego instalarlo utilizando el comando correcto.


wp theme search  ocean

Esto nos mostrará el resultado con los temas de WordPress que ha logrado encontrar del repositorio de WordPress, así como su puntuación actual, lo que nos brinda más información sobre el uso del tema, así como el soporte que este puedan darle dentro de la comunidad de WordPress.


Success: Showing 10 of 11 themes.
+-------------------+-------------------+--------+                                                                                                                                                           | name              | slug              | rating |                                                                                                                                                           +-------------------+-------------------+--------+                                                                                                                                                           | OceanWP           | oceanwp           | 98     |                                                                                                                                                           | North Shore       | north-shore       | 0      |                                                                                                                                                           | Nirvana           | nirvana           | 86     |                                                                                                                                                           | Oceanly News Dark | oceanly-news-dark | 0      |                                                                                                                                                           | Oceanly News      | oceanly-news      | 0      |                                                                                                                                                           | Oceanly           | oceanly           | 100    |                                                                                                                                                           | Travel Ocean      | travel-ocean      | 0      |                                                                                                                                                           | Oceanica Lite     | oceanica-lite     | 100    |                                                                                                                                                           | Oceanic           | oceanic           | 100    |                                                                                                                                                           | Marianne          | marianne          | 96     |                                                                                                                                                           +-------------------+-------------------+--------+

Si quisiéramos instalar alguno en específico solo necesitamos utilizar el siguiente comando:


wp theme install oceanwp --activate

Instalar tema con comando WP-CLI en WordPress

Hasta ahora hemos visto algunos ejemplos para instalar plugins y temas, así como desactivarlos, pero también podemos realizar otras acciones como por ejemplo actualizar nuestra versión de WordPress, con lo cual no solo podemos actualizar nuestros sitios con WordPress, sino también los plugins y temas que estemos utilizando.

Para actualizar WordPress lo primero es actualiza su núcleo o core principal con el siguiente comando.


wp core update

Luego de ello podemos comprobar si aún necesitamos actualizar la base de datos para nuestra versión instalada.


wp core update-db

Si queremos actualizar nuestros plugins podemos utilizar el comando -all ya sea si queremos actualizar todos nuestros temas o plugins, si, por el contrario, quisiéramos actualizar tema WordPress o plugin especifico, en este caso podemos sustituir -all con el nombre del tema o plugin tal como se muestra en tu directorio de wp-content/plugins o wp-content/themes


wp theme update --all

Actualizar temas y plugins con comando WP-CLI en WordPress

Esto nos mostrará un mensaje con el resultado sobre las actualizaciones de los temas que realizamos:


Success: Updated 2 of 2 themes.                                                                                                                                                                              +---------------+-------------+-------------+---------+                                                                                                                                                      | name          | old_version | new_version | status  |                                                                                                                                                      +---------------+-------------+-------------+---------+                                                                                                                                                      | astra         | 4.0.0       | 4.0.2       | Updated |                                                                                                                                                      | generatepress | 3.2.4       | 3.3.0       | Updated |                                                                                                                                                      +---------------+-------------+-------------+---------+   

Un ejemplo sencillo para actualizar solo un plugin específico es utilizar el siguiente comando:


wp plugin update woocommerce

Actualizando plugin con WP-CLI en WordPress

Veremos igualmente un mensaje con el resultado de la actualización del plugin que hemos indicado en el comando de WP-CLI


Success: Updated 1 of 1 plugins.                                                                                                                                                                             +-------------+-------------+-------------+---------+                                                                                                                                                        | name        | old_version | new_version | status  |                                                                                                                                                        +-------------+-------------+-------------+---------+                                                                                                                                                        | woocommerce | 7.5.0       | 7.5.1       | Updated |                                                                                                                                                        +-------------+-------------+-------------+---------+                                                                                                                                                                                                              

 ¿Qué otras acciones básicas podemos realizar con WP-CLI?

Podemos ver que esta es una herramienta poderosa que podemos utilizar para facilitar nuestro trabajo como desarrolladores de sitios web en WordPress, dentro de estas tareas una de las que puede causarnos más dolores de cabeza es la migración de un sitio a otro, aun cuando tenemos muchas herramientas que pueden facilitarnos esta tarea es importante mencionar que también podemos realizarla con un comando de WP-CLI.

Por ejemplo, luego de la migración de un sitio web necesitaremos reemplazar todas las instancias de nuestro dominio anterior al nuevo en nuestra base de datos, con un comando en WP-CLI podremos buscar y reemplazar estas instancias de nuestra base de datos, para ello solo necesitamos utilizar el siguiente comando:


wp search-replace --dry-run 'domonioantiguo.com' 'nuevodominio.com'

Si queremos ver una vista previa de los que será reemplazado podemos utilizar el parámetro –dry-run.

También podemos gestionar la base de datos, con WP-CLI podremos ejecutar consultas SQL con el comando wp db query, por ejemplo podemos dar un vistazo a los usuarios registrados en nuestro sitio web utilizando el siguiente comando.


wp db query "SELECT user_login,ID FROM wp_users;"

Esto nos mostrará el resultado con nuestros usuarios activos en nuestro sitio web


+------------+----+
| user_login | ID |
+------------+----+
| user       | 1  |
+------------+----+

De igual forma podremos gestionar entradas en nuestro sitio web utilizando comandos de WP-CLI, por ejemplo podemos ver una lista completa de nuestras entradas publicadas utilizando un comando como:


wp post list

Esto nos mostrará el resultado con el nombre de nuestras entradas, fecha de publicación y su estatus actual.


+----+--------------+-------------+---------------------+-------------+
| ID | post_title   | post_name   | post_date           | post_status |
+----+--------------+-------------+---------------------+-------------+
| 1  | Hello world! | hello-world | 2023-02-03 20:36:28 | publish     |
+----+--------------+-------------+---------------------+-------------+

Ver entradas de mi sitio web con WP-CLI

Podremos borrar entradas de nuestro sitio web utilizando un comando como:


wp post delete 1

Y si queremos publicar uno nuevo podremos hacerlo utilizando un comando como:


wp post create --post_status=publish --post_title="Nueva entrafa publicada con WP-CLI" --edit

Esto nos mostrará un mensaje con el resultado de nuestra entrada que luego podremos comprobar está creada dentro del apartado de Entradas de nuestro sitio web.


Success: Created post 47.

Entrada publicada con WP-CLI

 WP Cli en modo remoto

Una de las ventajas que podemos tener al utilizar WP-CLi es que podemos utilizarlo de forma remota para conectarnos y ejecutar los comandos que necesitemos para administrar nuestro sitio web, lo primero que tenemos que hacer en este caso es verificar podemos conectarnos a través de SSH a nuestro alojamiento web.

Para ello es importante verifiqué si tu plan lo permite, debes tener en cuenta que dentro de webempresa el acceso SSH (Secure Shell) no está habilitado por defecto toso los planes de hosting; pero si lo necesitas puedes revisar la posibilidad de habilitarlo en los siguientes que describen dentro de la siguiente guía para Acceso SSH.

También es importante conocer si tu alojamiento soportan WP-CLI de esta forma podremos instalarlo de forma más sencilla.

Una vez tienes tus credenciales de acceso es importante instales WP-CLI dentro de tu servidor remoto utilizando el comando wp-cli-sshs, sin embargo, en versiones recientes esto ya es parte por defecto de WP-CLI.

Luego de ello podremos configurar los servidores global o localmente utilizando un archivo como config.yml o wp-cli.local.yml en el directorio actual y funcional, para ello solo necesitamos utilizar un comando como:


ssh:

  staging:
    cmd: ssh %pseudotty% username@server.com %cmd%
    url: http://diminio.com
    path: /www/path/to/site/root

Una vez hemos logrado ejecutar el comando y tengamos los resultados podemos utilizar el siguiente comando para actualizar WordPress en nuestro sitio remoto:


wp ssh core update --host=staging

 Comando Bash

Esta es una herramienta muy popular de scripts disponibles en Unix, y el cual es abreviación de Bourne Again Shell, podemos decir que son una serie de comandos escritor en un archivo los cuales son leídos y ejecutados por el programa bash y el cual se ejecuta línea por línea.

Un ejemplo sencillo puede ser que necesitemos navegar a una ruta determinada de nuestro servidor, crear algún directorio y generar algún tipo de proceso en ella utilizando la línea de comandos.

De esta forma podremos ahorrar tiempo automatizando tareas dentro de nuestro sitio web, por ejemplo si quisiéramos instalar un WordPress de forma sencilla solo tendremos que crear un archivo install.sc. dentro de un directorio y pegar los comandos que necesitamos.


wp core download


wp core download
wp core config --dbname=mydbname --dbuser=mydbuser --dbpass=mydbpass --dbhost=localhost --dbprefix=whebfubwef_ --extra-php <<PHP
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
PHP
wp db create
wp core install --url=http://midominio.com --title=SiteTitle --admin_user=username --admin_password=mypassword --admin_email=cambiame@email.com

Luego de ello solo tendremos que introducir bash.install y todo se ejecutará como necesitamos sin intervención del usuario. Para administrar varios sitios web al mismo tiempo podemos configurar los entornos que necesitemos y crear un bash script como:


wp ssh core update --host=clienteUNO
wp ssh core update --host=clienteDOS
wp ssh core update --host=clienteTRES
wp ssh core update --host=clienteCUATRO

Esto nos ahorra mucho tiempo dentro de la administración de varios sitios web, ya que con WP-CLI podremos actualizar los tema, plugins o WordPress en una serie de clientes y sitios al mismo tiempo.

 Conclusiones.

Como puede ver esta es una herramienta muy potente y muy usa por desarrolladores de sitio web en WordPress, al conocer los comandos que necesitamos podemos crear sitios web de forma rápida, realizar instalaciones o mantenimiento a nuestro sitio web de forma sencilla.

WP-CLI nos permite poder administrar innumerables sitios web creado con WordPress a través de la línea de comandos, logrando así agilizar todo el flujo de trabajo y mejorar nuestra productividad y tiempos de respuesta.

Solo tenemos que conocer un poco más sobre la herramienta para sacarle todo el potencial que podemos y así comenzar a utilizarla dentro de nuestro proyecto con WordPress.

También te puede interesar:

¿Te ha resultado útil este artículo?

Promo febrero Hosting 70 descuento