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.

También te podría gustar...