WP-CLI – Gestión de WordPress desde el terminal de Linux
Si eres un administrador de sistemas y responsable de gestionar cientos o miles de sitios web de WordPress, es un proceso que requiere mucho tiempo. Tendrás que entrar en cada panel de control de WordPress, instalar o actualizar plugins y temas. Aquí es donde entra en escena el WP-CLI. El
WP-CLI es una potente herramienta de línea de comandos diseñada específicamente para gestionar WordPress desde la línea de comandos. Puedes gestionar varios sitios de WordPress sin tener que entrar en el panel de administración de WordPress. Con WP-CLI, puedes realizar varias operaciones, como instalar y actualizar plugins, temas, crear contenido, trabajar con bases de datos y mucho más.
En este post, mostraré cómo instalar y utilizar WP-CLI para gestionar sitios de WordPress.
Requisitos previos
- Un servidor con Ubuntu 20.04 con WordPress instalado.
- Una contraseña de root configurada en el servidor.
Cómo empezar
En primer lugar, tendrás que actualizar la caché del paquete APT en tu sistema. Puedes actualizarla con el siguiente comando:
apt-get update -y
Una vez que tu sistema esté actualizado, puedes pasar al siguiente paso.
Instalar WP-CLI
Primero, descarga el binario de WP-CLI con el siguiente comando:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
Una vez descargado, establece los permisos adecuados para el archivo descargado:
chmod +x wp-cli.phar
A continuación, copia el binario descargado en la ruta del sistema con el siguiente comando:
cp wp-cli.phar /usr/bin/wp
Ahora, verifica la versión de WP-CLI con el siguiente comando:
wp cli version --allow-root
Deberías ver la siguiente salida:
WP-CLI 2.5.0
Gestionar plugins con WP-CLI
En esta sección, aprenderemos a buscar, instalar, actualizar y eliminar plugins en un sitio de WordPress desde la línea de comandos.
Primero, cambia el directorio a tu sitio web de WordPress con el siguiente comando:
cd /var/www/html/wordpress
Para listar todos los plugins instalados en tu sitio de WordPress, ejecuta el siguiente comando:
wp plugin list --allow-root
Deberías ver el siguiente resultado:
+---------+----------+--------+---------+ | name | status | update | version | +---------+----------+--------+---------+ | akismet | inactive | none | 4.1.9 | | hello | inactive | none | 1.7.2 | +---------+----------+--------+---------+
Para buscar un plugin específico, ejecuta el siguiente comando:
wp plugin search cache --allow-root
Deberías ver todos los plugins relacionados con la caché en el siguiente resultado:
Success: Showing 10 of 3688 plugins. +--------------------------------------------------------------------------------+--------------------------+--------+ | name | slug | rating | +--------------------------------------------------------------------------------+--------------------------+--------+ | LiteSpeed Cache | litespeed-cache | 98 | | W3 Total Cache | w3-total-cache | 88 | | WP-Optimize – Cache, Clean, Compress. | wp-optimize | 96 | | WP Fastest Cache | wp-fastest-cache | 98 | | WP Cloudflare Super Page Cache | wp-cloudflare-page-cache | 98 | | Redis Object Cache | redis-cache | 92 | | WP Super Cache | wp-super-cache | 86 | | Autoptimize | autoptimize | 94 | | Hummingbird – Optimize Speed, Enable Cache, Minify CSS & Defer Critical JS | hummingbird-performance | 96 | | Cache Enabler | cache-enabler | 88 | +--------------------------------------------------------------------------------+--------------------------+--------+
Ahora, instala el plugin específico de la lista anterior con el siguiente comando:
wp plugin install wp-super-cache --allow-root
Deberías ver la siguiente salida:
Installing WP Super Cache (1.7.3) Downloading installation package from https://downloads.wordpress.org/plugin/wp-super-cache.1.7.3.zip... Unpacking the package... Installing the plugin... Plugin installed successfully. Success: Installed 1 of 1 plugins.
Ahora, confirma si el plugin está instalado o no con el siguiente comando:
wp plugin list --allow-root
Deberías ver la siguiente salida:
+----------------+----------+--------+---------+ | name | status | update | version | +----------------+----------+--------+---------+ | akismet | inactive | none | 4.1.9 | | hello | inactive | none | 1.7.2 | | wp-super-cache | inactive | none | 1.7.3 | +----------------+----------+--------+---------+
Instalar el plugin desde la fuente específica con el siguiente comando:
wp plugin install https://downloads.wordpress.org/plugin/caldera-forms.1.9.4.zip --allow-root
Deberías ver la siguiente salida:
Downloading installation package from https://downloads.wordpress.org/plugin/caldera-forms.1.9.4.zip... Unpacking the package... Installing the plugin... Plugin installed successfully. Success: Installed 1 of 1 plugins.
Para activar el plugin instalado, ejecuta el siguiente comando:
wp plugin activate wp-super-cache --allow-root
Deberías ver el siguiente resultado:
Plugin 'wp-super-cache' activated. Success: Activated 1 of 1 plugins.
Para desactivar el plugin instalado, ejecuta el siguiente comando:
wp plugin deactivate wp-super-cache --allow-root
Deberías ver el siguiente resultado:
Plugin 'wp-super-cache' deactivated. Success: Deactivated 1 of 1 plugins.
Para activar todos los plugins, ejecuta el siguiente comando:
wp plugin activate --all --allow-root
Para actualizar un plugin específico, ejecuta el siguiente comando:
wp plugin update akismet --allow-root
Para eliminar un plugin específico, ejecuta el siguiente comando:
wp plugin delete wp-super-cache --allow-root
Para eliminar todos los plugins, ejecuta el siguiente comando:
wp plugin delete --all --allow-root
Gestionar temas con WP-CLI
En esta sección, te mostraremos cómo instalar, actualizar, buscar y gestionar temas con WP-CLI.
Para listar todos los temas instalados en tu sitio de WordPress, ejecuta el siguiente comando:
wp theme list --allow-root
Deberías ver la siguiente salida:
+-----------------+----------+--------+---------+ | name | status | update | version | +-----------------+----------+--------+---------+ | twentynineteen | inactive | none | 2.0 | | twentytwenty | inactive | none | 1.7 | | twentytwentyone | active | none | 1.3 | +-----------------+----------+--------+---------+
Para buscar un tema concreto, ejecuta el siguiente comando:
wp theme search metro --allow-root
Deberías ver todos los temas que coinciden con la palabra metro:
Success: Showing 4 of 4 themes. +----------------+----------------+--------+ | name | slug | rating | +----------------+----------------+--------+ | Metrolo | metrolo | 100 | | MetroStore | metrostore | 100 | | Metro Magazine | metro-magazine | 98 | | Rara Magazine | rara-magazine | 0 | +----------------+----------------+--------+
Para instalar y activar el tema metro, ejecuta el siguiente comando:
wp theme install metro-magazine --activate --allow-root
Deberías ver el siguiente resultado:
Installing Metro Magazine (1.3.5) Downloading installation package from https://downloads.wordpress.org/theme/metro-magazine.1.3.5.zip... Unpacking the package... Installing the theme... Theme installed successfully. Activating 'metro-magazine'... Success: Switched to 'Metro Magazine' theme. Success: Installed 1 of 1 themes.
Para actualizar todos los temas, ejecuta el siguiente comando:
wp theme update --all --allow-root
Para eliminar un tema específico, ejecuta el siguiente comando:
wp theme delete metro-magazine --allow-root
Crear y gestionar entradas y páginas con WP-CLI
En esta sección, te mostraremos cómo listar, crear y gestionar entradas y páginas con WP-CLI.
Para listar todas las entradas de tu sitio WordPress, ejecuta el siguiente comando:
wp post list --allow-root
Deberías obtener la siguiente salida:
+----+--------------+-------------+---------------------+-------------+ | ID | post_title | post_name | post_date | post_status | +----+--------------+-------------+---------------------+-------------+ | 1 | Hello world! | hello-world | 2021-06-09 14:51:29 | publish | +----+--------------+-------------+---------------------+-------------+
Para eliminar un número concreto de entradas, ejecuta el siguiente comando:
wp post delete 1 --allow-root
Para crear una nueva entrada, ejecuta el siguiente comando:
wp post create --post_status=publish --post_title="How to Manage WordPress with WP-CLI" --edit --allow-root
Para crear una página en lugar de una entrada, ejecuta el siguiente comando
wp post create --post_title="My new page" --post_status=draft --post_type=page --allow-root
Para generar 30 entradas con datos ficticios, ejecuta el siguiente comando:
wp post generate --count=30 --allow-root
Para listar todas las entradas generadas, ejecuta el siguiente comando:
wp post list --allow-root
Deberías ver la siguiente salida:
+----+-------------------------------------+-------------------------------------+---------------------+-------------+ | ID | post_title | post_name | post_date | post_status | +----+-------------------------------------+-------------------------------------+---------------------+-------------+ | 7 | Post 2 | post-2 | 2021-06-09 15:00:57 | publish | | 8 | Post 3 | post-3 | 2021-06-09 15:00:57 | publish | | 9 | Post 4 | post-4 | 2021-06-09 15:00:57 | publish | | 10 | Post 5 | post-5 | 2021-06-09 15:00:57 | publish | | 11 | Post 6 | post-6 | 2021-06-09 15:00:57 | publish | | 12 | Post 7 | post-7 | 2021-06-09 15:00:57 | publish | | 13 | Post 8 | post-8 | 2021-06-09 15:00:57 | publish | | 14 | Post 9 | post-9 | 2021-06-09 15:00:57 | publish | | 15 | Post 10 | post-10 | 2021-06-09 15:00:57 | publish | | 16 | Post 11 | post-11 | 2021-06-09 15:00:57 | publish | | 17 | Post 12 | post-12 | 2021-06-09 15:00:57 | publish | | 18 | Post 13 | post-13 | 2021-06-09 15:00:57 | publish | | 19 | Post 14 | post-14 | 2021-06-09 15:00:57 | publish | | 20 | Post 15 | post-15 | 2021-06-09 15:00:57 | publish | | 21 | Post 16 | post-16 | 2021-06-09 15:00:57 | publish | | 22 | Post 17 | post-17 | 2021-06-09 15:00:57 | publish | | 23 | Post 18 | post-18 | 2021-06-09 15:00:57 | publish | | 24 | Post 19 | post-19 | 2021-06-09 15:00:57 | publish | | 25 | Post 20 | post-20 | 2021-06-09 15:00:57 | publish | | 26 | Post 21 | post-21 | 2021-06-09 15:00:57 | publish | | 27 | Post 22 | post-22 | 2021-06-09 15:00:57 | publish | | 28 | Post 23 | post-23 | 2021-06-09 15:00:57 | publish | | 29 | Post 24 | post-24 | 2021-06-09 15:00:57 | publish | | 30 | Post 25 | post-25 | 2021-06-09 15:00:57 | publish | | 31 | Post 26 | post-26 | 2021-06-09 15:00:57 | publish | | 32 | Post 27 | post-27 | 2021-06-09 15:00:57 | publish | | 33 | Post 28 | post-28 | 2021-06-09 15:00:57 | publish | | 34 | Post 29 | post-29 | 2021-06-09 15:00:57 | publish | | 35 | Post 30 | post-30 | 2021-06-09 15:00:57 | publish | | 36 | Post 31 | post-31 | 2021-06-09 15:00:57 | publish | | 5 | How to Manage WordPress with WP-CLI | how-to-manage-wordpress-with-wp-cli | 2021-06-09 15:00:39 | publish | +----+-------------------------------------+-------------------------------------+---------------------+-------------+
Para generar una página con datos ficticios, ejecuta el siguiente comando
wp post generate --count=30 --post_type=page --allow-root
Gestionar la base de datos con WP-CLI
También puedes gestionar la base de datos con WP-CLI.
Para hacer una copia de seguridad de toda la base de datos de WordPress, ejecuta el siguiente comando:
wp db export --allow-root
Deberías ver la siguiente salida:
Success: Exported to 'mysite-2021-06-09-14d4641.sql'.
También puedes importar la base de datos de WordPress con el siguiente comando:
wp db import backup.sql --allow-root
Actualizar WordPress con WP-CLI
Para imprimir la versión actual de tu WordPress, ejecuta el siguiente comando:
wp core version --allow-root
Deberías ver la siguiente salida:
5.7.2
Para comprobar la actualización de WordPress, ejecuta el siguiente comando:
wp core check-update --allow-root
Deberías ver la siguiente salida:
Success: WordPress is at the latest version.
Ahora puedes actualizar el WordPress a la última versión disponible con el siguiente comando:
wp core update --allow-root
Conclusión
En la guía anterior, has aprendido a instalar y utilizar WP-CLI para gestionar el sitio de WordPress. Espero que esto te facilite el trabajo.