Guía WP-CLI: Gestiona WordPress desde la terminal

wp cli
4.4
(7)

Si trabajas con WordPress, te aseguro que entender qué es WP-CLI y conocer algunos comandos de esta interfaz te ahorrará mucho tiempo en tu día a día. Y no solo por la posibilidad de automatizar tareas rutinarias, sino porque podrás realizar cualquier gestión en tu web de forma rápida y con menos riesgo de errores.

De hecho, podríamos decir que WP-CLI es sinónimo de eficacia. Tanto es así, que se está convirtiendo en la herramienta por excelencia de WordPress.

Instalar o desinstalar un plugin, añadir nuevos usuarios en tu web, actualizar el core de tu sitio o, por ejemplo, comprobar el estado de la base de datos es posible hacerlo en unos segundos ejecutando un subcomando.

¿Tienes curiosidad y quieres conocer mejor qué es WP-CLI y cómo funciona? Pues vamos a ello 🙂

¿Qué es WP-CLI?

WP-CLI (WordPress Command Line Interface) es una interfaz de línea de comandos para WordPress. A través de esta interfaz los usuarios pueden realizar cualquier acción que está disponible en el panel de administración de WordPress, es decir, en tudominio.com/wp-admin, pero también acciones más avanzadas.

En otras palabras, WP-CLI es una herramienta que pretende ir un paso más allá que el propio escritorio de WordPress. Está pensada para usuarios con conocimientos avanzados permitiendo realizar cualquiera de las acciones más básicas de la gestión de un WordPress, tareas en bloque, así como configuraciones más avanzadas.

Algunas de las tareas más básicas que puedes hacer con WP-CLI son:

  • Instalación de WordPress en tu plan de hosting.
  • Instalación y actualización de plugins y plantillas.
  • Activar el modo mantenimiento de WordPress.
  • Modificar la configuración de WordPress.

Pero como te dije, WP CLI también está pensado para ahorrar tiempo en configuraciones un poco más tediosas y que, en ocasiones, no es posible realizar desde el administrador como, por ejemplo:

  • Reparación y optimización de la base de datos.
  • Búsquedas y reemplazos en la base de datos (Search & Replace).
  • Limpiar la caché de WordPress
  • Crear o eliminar posts de forma masiva.
  • Eliminar las revisiones de WordPress
  • Crear roles personalizados de WordPress.
  • Crear tus propios plugins.
  • Crear temas hijo de WordPress.
  • Eliminar datos transitorios de WordPress.

Ventajas de utilizar WP CLI

Si hay algo positivo en WP CLI es la cantidad de tiempo que te puedes ahorrar en realizar tareas de mantenimiento en WordPress. Una vez que te haces a esta interfaz, realizar cualquier actualización del core de WordPress, plugins o plantillas no te llevarán más que un par de segundos, literalmente.

Además, al poder hacer tareas que desde el administrador no podrías ejecutar, te ahorra un montón de plugins o, lo que es lo mismo, código innecesario en tu web. Y sabes cómo afecta esto al rendimiento de tu sitio, ¿verdad? 🙂

¿Qué necesito para empezar WP CLI?

Para empezar a trabajar con WP CLI necesitas cumplir con dos requisitos:

  • Tener acceso por SSH a tu hosting
  • Utilizar una versión de PHP igual o superior a 5.6

Acceso SSH

Si quieres gestionar tu WordPress por línea de comandos es necesario crear una conexión por remoto al servidor en el que está alojada tu página web. Es decir, el hosting que utilizas tiene que tener acceso SSH.

En LucusHost todos nuestros planes de hosting poseen acceso SSH, aun si el servicio se trata de un alojamiento compartido.

Uy, espera… ¿Y es seguro tener SSH en un servidor compartido?

Completamente. Habrás escuchado que, por seguridad, muchos proveedores de alojamiento compartido no es posible tener acceso SSH, ya que lo que un usuario ejecute podría interferir en la actividad de otros usuarios.

En nuestro caso, todos nuestros servidores de alojamiento compartido utilizan CloudLinux con CageFS. Esta tecnología permite aislar virtualmente todas las cuentas del servidor de forma que, por ejemplo, un plan de Hosting WordPress Junior es una especie de “mini VPS” con sus propios recursos y que se encuentra totalmente aislado de las demás cuentas del servidor.

Te puede interesar: Cómo acceder por SSH a tu plan de hosting. 

Utilizar una versión de PHP igual o superior a 5.6

Para instalar la herramienta WP CLI es necesario que, además de tener acceso SSH a tu servidor, uses una versión de PHP igual o superior a la 5.6.

En LucusHost por defecto tendrás instalado PHP 7.3, pero puedes cambiar la versión de PHP en solo unos clics desde cPanel.

Te puede interesar: Cómo saber la versión de PHP que tengo instalada.

Cómo instalar y acceder a WP-CLI

Antes de explicarte cómo instalar WP-CLI, lo primero es comprobar si ya lo tienes instalado.

Tengo mi web en LucusHost

Entonces no tienes que instalar WP-CLI. Recuerda que todos nuestros planes de hosting tienen instalado WP-CLI, así que un paso que te ahorras :-).

Lo único que tienes que hacer para empezar a trabajar con esta interfaz de línea de comandos es conectarte por SSH a tu hosting. Si es la primera vez que lo vas a hacer, te recomiendo que te eches un ojo a esta guía: Qué es y cómo acceder por SSH a tu servidor.

Una vez que hayas accedido por SSH, tienes que acceder al directorio en el que tienes instalado WordPress. En este ejemplo lo tengo instalado en el dominio principal, por lo que tengo que acceder al public_html/

Para ello, ejecuta el siguiente comando:

cd public_html

Automáticamente, este comando te lleva al directorio de tu aplicación y, a partir de ahí, ya es posible empezar a trabajar con los comandos de WP-CLI para gestionar tu web.

Tengo mi web en otro proveedor

Si no tienes tu web alojada con nosotros, lo primero que tienes que hacer es comprobar si tienes WP-CLI instalado. Esto puedes hacerlo ejecutando este comando:

wp --info

Comando para comprobar si tengo WP-CLI instalado en mi hosting

Si está instalado deberías ver algo similar a la imagen anterior, en el que se muestran los datos relacionados con WP-CLI (debajo de la línea SQL modes) como, por ejemplo, la versión instalada.

En cambio, si no está instalado verás un resultado «not found» como este que te muestro aquí. Y, de ser así, toca instalar WP-CLI en tu servidor.

Resultado de WP-CLI no instalado

Lo primero, es descargar el binario de WP-CLI. Para ello, utiliza el comando curl:

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

Comprueba que funciona correctamente ejecutando:

php wp-cli.phar --info

Descargar el paquete de WP-CLI

Ahora establece los permisos de ejecución al binario:

chmod +x wp-cli.phar

Posteriormente, muévelo a un directorio de tu ruta:

mv wp-cli.phar /usr/local/bin/wp

Si todo se instaló correctamente, ejecuta este comando y verás por pantalla el resultado de la instalación.

wp --info

Descargar el paquete de WP-CLI

Cómo obtener los comandos de WP-CLI

Si ya utilizas WP-CLI, estoy segura de que conoces a la perfección algunos de los subcomandos más utilizados de esta interfaz, pero si no es así, te recomiendo que primero le eches un ojo al listado de comandos disponibles añadiendo «wp» en la terminal y pulsando «enter». De esta forma obtendrás un listado completo de cada uno de ellos y una pequeña explicación de su uso.

wp

Listado de subcomandos de WP-CLI

Además, en cada comando, podrás obtener todas las opciones disponibles, añadiendo el parámetro –help. Por ejemplo, si quiero conocer todas las opciones que me ofrece el subcomando plugin en WP-CLI, debo ejecutar:

wp plugin --help

De esta manera obtendré el listado de subcomandos disponibles y los parámetros que puedes utilizar en cada uno de ellos. Y recuerda que esto puedes hacerlo con todos los subcomandos de wp.

Obtener listado de subcomandos en WP-CLI

El la página oficial de WordPress.org para desarrolladores, también tienes un listado con todos los comandos, subcomandos y parámetros de WP-CLI.

Comandos básicos de WP-CLI

A continuación voy a mostrarte algunas de las tareas más habituales y sencillas que puedes realizar desde la terminal. Como verás, los comandos a ejecutar en WP-CLI siempre empiezan por «wp», seguido del comando o subcomando a ejecutar.

Instalar WordPress

¿Sabías que puedes instalar WordPress desde WP-CLI? Para ello, lo primero que tienes que hacer es descargar el paquete de WordPress ejecutando este subcomando:

wp core download --locale=es_ES

Comando de WP-CLI para descargar el paquete de WordPress

Con este subcomando se descargará la última versión de WordPress. Si quieres instalar una versión más antigua, debes añadir el siguiente parámetro:

wp core download --locale=es_ES --version=5.3.2

Instalar una versión antigua de WordPress con WP-CLI

Es importante establecer la opción «–locale» para descargar el paquete de WordPress en el idioma que quieres tener tu aplicación (en este caso español).

Una vez descargado el paquete tienes que establecer los datos de la base de datos en el archivo de configuración de WordPress (wp-config.php):

wp core config --dbname=usuariolucushost_wpcli --dbuser=usuariolucushost_wpcli --dbpass=lucushost123 --dbhost=localhost

Configurar wp-config.php de WordPress mediante WP-CLI

Una vez configurado el archivo wp-config.php, tienes que instalar el sitio:

wp core install --url=https://castroborja.lucusvirtual.es --title=WPCli --admin_user=Lucushost --admin_password=lucushost123 --admin_email=wpcli@lucushost.com

Instalar WordPress con WP-CLI

¡Listo! Ya tienes WordPress instalado y podrás acceder a tu aplicación con el usuario y contraseña que has establecido en el archivo de configuración de WordPress.

Gestionar el core de WordPress

WP-CLI dispone de un montón de comandos para gestionar el núcleo de WordPress, como comprobar la versión de WordPress, actualizarla o reinstalar el core de tu aplicación. Veamos cómo se realizan estas tareas en la práctica.

Comprobar la versión de WordPress

Para comprobar la versión de WordPress que tienes instalada, debes ejecutar este subcomando:

wp core version

Comprobar la versión de WordPress con WP-CLI

Comprobar actualizaciones del core de WordPress

Para revisar si tienes pendiente alguna actualización del núcleo de WordPress, el subcomando a ejecutar es:

wp core check-update

Comando de WP-CLI para comprobar actualizaciones pendientes del core de WordPress

Actualizar el core de WordPress

Si tienes actualizaciones pendientes, puedes actualizar el núcleo de WordPress así:

wp core update

Comando de WP-CLI para actualizar el núcleo de WordPress

Reinstalar el core de WordPress

El siguiente comando te permite reinstalar el núcleo de WordPress sin eliminar el contenido del directorio wp-content. Esto es muy útil, sobre todo si has detectado malware en tu aplicación.

Para ello, debes eliminar los directorios wp-admin y wp-admin y descargar la versión de WordPress que quieres reinstalar.

rm -rf wp-includes wp-admin
wp core download --force --skip-content --locale=es_ES

Comando de WP-CLI para elimianar los directorios de

Ahora comprueba que los ficheros reinstalados corresponden con la versión de tu WordPress:

wp-core verify-checksums

Comando de WP-CLI para comprobar ficheros

Gestión de plugins

Con la interfaz de WP-CLI también puedes rápidamente las tareas más habituales relacionadas con los plugins de WordPress. A continuación te muestro los comandos más utilizados.

Instalar un plugin

Para instalar un plugin en WordPress con WP-CLI, tienes tres formas diferentes de hacerlo. A continuación, te muestro tres subcomandos diferentes en función de dónde esté localizado el plugin.

  • Si el plugin está en el directorio oficial de WordPress, simplemente escribe la ruta del complemento, sin necesidad de descargarlo:
    wp plugin install akismet
  • Si el tienes el fichero ZIP del plugin descargado en local:
    wp plugin install /home/user/public_html/plugin.zip
  • Si tienes los ficheros del plugin en una URL remota:
    wp plugin install https://pluginremoto.com/plugin

Así se vería el proceso de instalar un plugin de WordPress desde la terminal:

Comando de WP-CLI para instalar un plugin

Listar los plugins que tienes instalados en tu web

Si quieres ver todos los complementos instalados en tu web, el subcomando a ejecutar es el siguiente:

wp plugin list

Comando de WP-CLI para sacar un listado de todos los plugins instalados en WodPress

Desinstalar un plugin

Este es el subcomando para desinstalar un plugin de tu aplicación:

wp plugin uninstall akismet

Comando de WP-CLI para desinstalar un plugin de WordPress

Desactivar un plugin

Igualmente, también puedes desactivar un plugin en WP-CLI:

wp plugin deactivate --all

Comando de WP-CLI para desactivar un plugin de WordPress

Activar un plugin

Con WP-CLI puedes activar un plugin de forma individual o en lote añadiendo el parámetro –all.

wp plugin activate hello

comando wpcli plugin activar

wp plugin activate --all

Comando de WP-CLI para activar plugins de forma masiva en WordPress

Comprobar si hay actualizaciones pendientes

En WP-CLI puedes comprobar si un plugin en concreto tiene alguna actualización pendiente. También puedes lanzar la comprobación para todos los plugins que tienes instalados añadiendo el parámetro –all.

wp plugin update hello
wp plugin update --all

Comando de WP-CLI para comprobar actualizaciones de WordPress

Revisar el estado de los plugins

También puedes comprobar el estado e información de un plugin en concreto ejecutando este subcomando:

wp plugin status contact-form-7

Comando de WP-CLI para comprobar el estado de un plugin

Si quieres obtener el estado de todos los instalados, ejecuta este subcomando:

wp plugin status

Comando de WP-CLI para comprobar el estado de todos los plugins

Gestión de temas

Acabamos de ver cómo gestionar las tareas relacionadas con los plugins de WordPress a través de la terminal. Ahora te muestro cómo hacer lo mismo, pero en el caso de los themes.

Instalar un theme

Para instalar un tema en WordPress, ejecuta lo siguiente:

wp theme install twentyseventeen

Comando de WP-CLI para instalar un tema en WordPress

Activar un theme

Ya tienes el theme instalado, ahora puedes activarlo así:

wp theme activate twentyseventeen

Comando de WP-CLI para activar un tema en WordPress

Desinstalar un theme

Si el tema de WordPress que vas a desinstalar es el que tienes activo en la web, es necesario activar uno diferente previamente. En el caso de que se trate de un tema que no utilizas, simplemente ejecuta lo siguiente:

wp theme activate twentytwenty
wp theme uninstall twentyseventeen

Comando de WP-CLI para desinstalar un tema de WordPress

Actualizar temas

También puedes actualizar uno, varios o todos los temas de WordPress mediante línea de comandos.

En el caso de realizar la actualización en masa, simplemente añade al comando el parámetro –all y para excluir los que no quieras actualizar, utiliza también el parámetro –exclude y el nombre del tema.

wp theme update twentytwenty
wp theme update --all
wp theme update --all --exclude=twentytwenty

Comando de WP-CLI para actualizar uno, varios o todos los temas de WordPress

Listar los temas que tienes instalados en tu web

Para visualizar un listado de los temas instalados en tu aplicación, tienes que utilizar este subcomando:

wp theme list

Comando de WP-CLI para obtener un listado de los temas instalados en WordPress

Activar o desactivar el modo mantenimiento de WordPress

Si estás haciendo cambios en tu web, siempre es recomendable poner WordPress en modo mantenimiento. Así, te aseguras de que tus visitas no se lleven una mala impresión si aterrizan en tu web y no está funcionando como debería.

Ejecutando este subcomando puedes activar el modo mantenimiento y asegurarte de que correctamente lo has hecho bien y está en modo activo.

wp maintenance-mode activate
wp maintenance-mode status

comando wpcli modo mantenimiento activo

Si ya has hecho los cambios en tu sitio y quieres desactivar el modo mantenimiento, ejecuta este subcomando:

wp maintenance-mode deactivate

Comando de WP-CLI para desactivar el modo mantenimiento en WordPress

Modificar la configuración de WordPress

El comando wp option  te permite realizar múltiples cambios en tu sitio. Para ver todas las opciones disponibles, ejecuta el siguiente subcomando:

wp option list

Comando de WP-CLI para obtener un listado de todas las opciones disponibles

Una de las opciones más interesantes que te permite realizar este subcomando es modificar la dirección URL de WordPress y de tu sitio:

wp option update home ‘https://lucushostwpcli.com
wp option update siteurl ‘https://lucushostwpcli.com’

comando wpcli opciones actualizar home siteurl

Por ejemplo, también puedes actualizar la zona horaria de tu sitio:

wp option update timezone_string Europe/Madrid

Comando de WP-CLI para actualizar la zona horaria de una web WordPress

Comandos avanzados de WP-CLI

¿Seguimos avanzando? Ya vimos algunas de las tareas más básicas (y también más frecuentes) que puedes realizar con WP-CLI, así que ahora vamos a dar un paso más.

A continuación te mostraré algunos de los comandos más avanzados de WP-CLI y que te serán muy útiles a la hora de manejar tu aplicación.

Gestionar la base de datos

Esta interfaz de línea de comandos te permite gestionar tu base de datos de forma sencilla y muy rápida. Veamos algunos ejemplos que te serán muy útiles 🙂 .

Ver las tablas de la base de datos

Para listar las tablas de tu base de datos, ejecuta este subcomando.

wp db tables

Por defecto, el resultado lo devuelve en modo lista. Si quieres obtener las tablas en otro formato, incluye el parámetro –format, por ejemplo, –format=csv.

wp db tables --format=csv

Comando de WP-CLI para ver las tablas de la base de datos

Comprueba el estado de la base de datos

Puedes comprobar el estado de la base de datos y ver si tiene algún error ejecutando lo siguiente:

wp db check

Comando de WP-CLI para comprobar el estado de las tablas de la base de datos

Comprueba el tamaño de la base de datos

Puedes revisar el tamaño de la base de datos ejecutando el siguiente subcomando:

wp db size

Comando de WP^-CLI para comprobar el tamaño de la base de datos

Añadiendo el parámetro –size_format, se mostrará el peso total de la base de datos en el formato que tú elijas: B, KB y MB.

wp db size --size_format=kb

Comando de WP-CLI para comprobar el peso de las tablas de la base de datos

Si quieres ver lo que ocupa individualmente las tablas de la base de datos, ejecuta el siguiente subcomando:

wp db size --tables --size_format=mb

Comando de WP-CLI para comprobar el tamaño de las tablas de la base de datos

Puedes utilizar otro formato, por ejemplo:

wp db size --tables --size_format=mb --format=csv

Comando de WP-CLI para comprobar el tamaño de las tablas de la base de datos

Exportar una base de datos

Este subcomando de WP-CLI te permite exportar tu base de datos:

wp db export bbddexport.sql

Comando de WP-CLI para exportar una base de datos

Exportar una tabla de la base de datos

En caso de que únicamente quieras exportar una tabla determinada de la base de datos, puedes hacerlo así:

wp db export --tables=wp_comments, wp_links, wp_postmeta tablasexport.sql

Comando de WP-CLI para exportar una tabla de la base de datos

También puedes exportar toda la base de datos, excluyendo las tablas que no necesitas:

wp db export --exclude_tables=wp_comments, wp_links exctables.sql

Comando de WP-CLI para exportar la base de datos, excluyendo algunas tablas.

Importar una base de datos

Para realizar una importación, utiliza este subcomando:

wp db import bbddexport.sql

Comando de WP-CLI para importar una base de datos

¡Ojo! Para utilizar este subcomando es necesario tener creada la base de datos previamente.

Eliminar una base de datos

Para eliminar una base de datos, el subcomando que debes utilizar es el siguiente:

wp db drop

Comando de WP-CLI para eliminar una base de datos.

Como puedes ver, en este subcomando no tenemos que establecer el nombre de la base de datos, ya que coge automáticamente la información del wp-config.php de nuestra instalación.

Eliminar todas las tablas de la base de datos

Si quieres vaciar la base de datos, es decir, eliminar todas las tablas, tienes que ejecutar en WP-CLI lo siguiente:

wp db reset

Comando de WP-CLI para eliminar las tablas de la base de datos.

Mostrar el prefijo de la base de datos

wp db prefix

Comando de WP-CLI para mostrar el prefijo de la base de datos

Buscar una cadena de caracteres dentro de las tablas de la base de datos

wp db search lucusvirtual.es

Comando de WP-CLI para buscar una cadena en la base de datos

Ejecutar una consulta en la base de datos

wp db query ‘SELECT * FROM wp_options WHERE option_name=”siteurl”’ --skip-column-name

Comando de WP-CLI para ejecutar una consulta en la base de datos

Buscar y reemplazar (Search & Replace) en la base de datos

Uno de los comandos más potentes y útiles de WP-CLI es wp search-replace. Esto nos permite buscar una cadena de caracteres en nuestra base de datos y reemplazar por otra. Por ejemplo, este comando puedes utilizarlo si quieres cambiar el dominio de WordPress, ya que va a buscar todas las coincidencias que tengas en la base de datos del DominioA.com y substituirlas por el DominioB.com.

Tomando como base el ejemplo anterior, para realizar un cambio de dominio, lo ideal sería ejecutar primero el subcomando que te muestro a continuación. Como ves, le he añadido el parámetro –dry-run, ya que permite visualizar las coincidencias de la cadena de caracteres, así como el número de reemplazos que se deberían hacer en la base de datos, pero no los ejecuta.

wp search-replace ‘https://castroborja.lucusvirtual.es’ ‘lucushostwpcli.com’ --dry-run

Comando de WP-CLI para sustituir cadena sin ejecutar Comando de WP-CLI para sustituir cadena sin ejecutar

Si quieres que los cambios se ejecuten, tienes que utilizar el subcomando anterior sin el parámetro, es decir:

wp search-replace ‘https://castroborja.lucusvirtual.es’ ‘lucushostwpcli.com’

Comando de WP-CLI para substituir una cadena de caracteres en la base de datos. Comando de WP-CLI para substituir una cadena de caracteres en la base de datos.

Con este mismo subcomando, también puedes reemplazar únicamente en las tablas de la base de datos que tú especifiques. Por ejemplo:

wp search-replace ‘‘lucushostwpcli.com’ ‘pruebashl’ wp_post

Comando de WP-CLI para substituir una cadena de caracteres en una tabla de la base de datos.

En caso contrario, si deseas hacer cambios en todas las tablas excepto alguna en concreto, debes añadir el parámetro –skip como te muestro a continuación. Además, también se aplica un formato de salida por pantalla diferente.

wp search-replace ‘‘lucushostwpcli.com’ ‘pruebashl’ --skip-tables=wp_post --format=count

Comando de WP-CLI para hacer un reemplazo en la base de datos excluyendo alguna tabla en concreto.

En el caso de que quieras ver por pantalla las filas que se van actualizando, puedes utilizar este subcomando:

wp search-replace ‘lucushostwpcli.com’ ‘https://castroborja.lucusvirtual.es’ --verbose

Comando de WP-CLI para sustituir una cadena de caracteres con el formato de salida por pantalla.

Limpiar la caché de WordPress

Ya sabes que hay muchas formas de borrar la caché de WordPress, y sí, también es posible hacerlo con WP-CLI.

wp cache flush

Comando de WP-CLI para borrar la caché de WordPress

Gestión de usuarios

Con WP-CLI puedes realizar un montón de tareas para gestionar los usuarios de tu web con el comando:

wp user

A continuación, te muestro algunos de los comandos más habituales relacionados con la gestión de usuarios en WordPress.

Crear un nuevo usuario

Con WP-CLI puedes crear un nuevo usuario ejecutando lo siguiente:

wp user create lhost lhwpcli@lucushost.com --role=editor --user_pass=lucushost123

Comando de WP-CLI para crear un nuevo usuario en WordPress

Ten en cuenta que para crear un nuevo usuario tienes que establecer la cuenta de correo de dicho usuario, así como la contraseña y el rol que va a tener. En el caso de no asignar una contraseña, se generará una aleatoria.

Obtener una lista de usuarios de una instalación de WordPress

Para generar unlistado de todos los usuarios de tu instalación ejecuta:

wp user list

Comando de WP-CLI para obtener un listado de los usuarios de WordPress

Al comando anterior puedes añadirle filtros para que únicamente se muestren los usuarios de un determinado rol. Por ejemplo:

wp user list --role=administrator

Comando de WP-CLI para obtener un listado de los usuarios de WordPress con un determinado rol

A mayores, también puedes visualizar por pantalla la salida del comando con distintos formatos: YAML, COUNT, IDS, CSV o JSON.

wp user list --format yaml

Comando de WP-CLI para obtener un listado de los usuarios de WordPress con un determinado formato

Editar la información de un usuario de WordPress

Puedes editar o actualizar la información de un determinado usuario de WordPress ejecutando este subcomando en WP-CLI. Eso sí, siempre es necesario indicar la cuenta de correo o ID del usuario que quieres modificar.

wp user update lhost --role=administrator --user_pass=lhupdate --user_email=lhwp@lucushost.com

Comando de WP-CLI para actualizar la información de un usuario de WordPress

Crear usuarios en lote

Si necesitas crear un lote de usuarios para tener diferentes perfiles o hacer pruebas, puedes utilizar este subcomando:

wp user generate --count=3 --role=editor 
wp user generate --count=3 --role=author

Comando de WP-CLI para crear usuarios en lote

Como puedes ver en la imagen, se han generado 6 nuevos usuarios con diferentes roles. En el caso de no establecer el parámetro –count, se crearían 100 nuevos usuarios.

Importar usuarios desde CSV

Otra alternativa que ofrece este comando es importar usuarios desde un CSV.

wp user import-csv wpuser.csv

Comando de WP-CLI para importar usuarios

Para realizar correctamente la importación de usuarios, la estructura del CSV debe ser como la siguiente:

  • user_login, display_name, user_email, roles

En este subcomando también puedes establecer que los usuarios existentes no sean modificados:

wp user import-csv --skip-update wpuser.csv

Comando de WP-CLI para importar contactos en CVS sin actualizar los existentes

Eliminar usuarios

Para eliminar usuarios en WP-CLI puedes utilizar este subcomando, en el que tienes que establecer cuenta de correo, ID o nombre del usuario que quieres eliminar:

wp user delete 4

Comando de WP-CLI para elimianr un usuario de WordPress

Si quieres eliminar a un usuario que tenga posts o entradas en tu blog y no quieres que se pierdan, a la hora de eliminarlo tienes que reasignar este contenido a otro usuario. Por ejemplo:

wp user delete 5 --reassign=6

Comando de WP-CLI para elimianr un usuario de WordPress y reasignar el contenido a otro usuario

También puedes eliminar a los usuarios en lote  filtrando por rol, combinando varios subcomandos. Con este subcomando obtendrías una lista de todos los usuarios con el rol de autor, eliminarlos y enviar todo el contenido de ellos al usuario con el ID 2.

wp user delete $(wp user list --role=author --field=user_login) --reassign=2

Comando de WP-CLI para elimianr usuarios en lote

Comprobar el rol o capacidades de un usuario

Si quieres ver los privilegios de un determinado usuario de WordPress, tienes que ejecutar el siguiente subcomando:

wp user list-caps 1

Comando de WP-CLI para comprobar las capacidades de un usuario de WordPress

Añadir privilegios a un usuario

Para añadir más capacidades a un usuario, utiliza este subcomando:

wp user add-cap 2 edit_post

Comando de WP-CLI para añadir privilegios a un usuario de WordPress

Eliminar privilegios a un usuario

Por el contrario, si lo que deseas es eliminar algún privilegio a un determinado usuario, el subcomando que tienes que utilizar es:

wp user remove-cap 3 activate_plugins

Comando de WP-CLI para eliminar privilegios a un usuario de WordPress

Crear un rol y asignárselo a un usuario

Si quieres crea un nuevo rol de WordPress y asignárselo a un usuario, ejecuta este subcomando:

wp user add-role lhpruebas1 editor

Comando de WP-CLI para añadir un nuevo rol y asignárselo a un usuario

Cambiar un rol de usuario

Para modificar el rol que tiene un usuario y establecer uno diferente, por ejemplo, de «editor» a «administrador», puedes utilizar este subcomando:

wp user set-role lhpruebas1 administrator

Comando de WP-CLI para cambiar un rol a un usuario de WordPress

Gestión de posts, entradas y meta de WordPress

Con WP-CLI puedes realizar un montón de tareas relacionadas con el contenido de tu web. A continuación te muestro algunas de las tareas más comunes.

Obtener una lista con los posts creados

Si quieres obtener un listado con todas las entradas de tu blog, ejecuta este subcomando:

 wp post list

Comando de WP-CLI para obtener un listado de todos los posts de WordPress

Crear un nuevo post

Para generar una nueva entrada, ejecuta este subcomando. Recuerda substituir los valores que pongo de ejemplo por los tuyos.

wp post create --post_title=”LucusHost” --post_type=post --post_name=”LucusHost” --post_date=”2022-01-17” --post_status=publish --post_content=”Creando una guía de WP_CLI”

Comando de WP-CLI para crear un post en WordPress

Si quieres obtener un listado de todos los comandos que puedes utilizar para gestionar tu contenido, ejecuta lo siguiente:

wp post create --help

En caso de necesitar múltiples post para añadir contenido de pruebas, este subcomando te permite crear entradas en lote:

echo “Crear post por lotes” | wp post generate --post_content --count=5

Comando de WP-CLI para generar posts en lote

Modificar el contenido de un post

Si quieres editar el contenido de una entrada de WordPress, puedes utilizar este subcomando que abre un editor de texto para modificar el contenido de la opción –post_content.

wp post edit 8

Comando de WP-CLI para modificar posts en WordPress

Obtener la información de un post

Si quieres obtener datos de una entrada de tu blog, por ejemplo, el autor o la fecha de publicación, puedes ejecutar este subcomando en WP-CLI:

wp post get 1

Comando de WP-CLI para obtener la información de un post

Actualizar la información de un post ya creado

Si has revisado la información de un post y deseas modificarla, puedes utilizar este subcomando:

wp post update 8 --post_name=”LucusHost” --post_content=”WPCliguia” --post_author=”1”

Comando de WP-CLI para editar la información de un post

Mover un post a la papelera

Este subcomando te permitirá eliminar un post de forma temporal, es decir, enviándolo:

wp post delete 12 11 10

Comando de WP-CLI para enviar un post a la papelera

Eliminar un post permanentemente

Por el contrario, si deseas eliminar una entrada de forma permanente ejecuta el siguiente subcomando:

wp post delete 9 --force

Comando de WP-CLI para eliminar un post de forma permanente

Eliminar uno o varios posts en lote (permanentemente)

Combinando varios subcomandos, puedes forzar la eliminación de todos los posts que tienes en la papelera:

wp post delete $(wp post list --post_satus=trash --format=ids)

Comando de WP-CLI para eliminar un lote de posts de forma permanente

Borrar las revisiones de posts

A medida que tu blog crece, se generan filas en la base de datos con las revisiones de las entradas de tu blog. Estas pueden ser necesarias si quieres recuperar el contenido en una fecha concreta, pero, si no las utilizas, puedes eliminarlas con este subcomando:

wp post delete --force $(wp post list --post_type='revision' --format=ids)

Comando de WP-CLI para borrar las revisiones de WordPress

Exportar contenido

Con WP-CLI puedes exportar contenido de tu web como la información de autores, entradas, ficheros adjuntos o comentarios.

wp export --dir=/home/usuariolucushost/public_html/exportacion --max_file_size=100 --skip_comments --author=lhos

Comando de WP-CLI para exportar contenido

Utilizando este subcomando, se exportará la información en formato WXR y no incluye la configuración del sitio, pero puedes modificar el subcomando añadiendo algunos parámetros como, por ejemplo:

  • –dir: permite guardar el fichero en una ruta específica, por defecto lo guarda en la ruta en la que ejecutamos el comando.
  • –max_file_size: establece el tamaño máximo del fichero en MB, que por defecto son 15.
  • –skip-comments: omite los comentarios en la exportación.

También puedes añadir filtros para exportar el contenido. Por ejemplo:

  • –author: exporta todas las post del usuario.
  • –start_date: establece la fecha desde la cual quieres exportar el contenido.
  • –end_date: exporta las entradas hasta la fecha que se indique.
  • –post_type: exporta las entradas de un tipo de en concreto: page, post..
  • –start_id: exporta todos los post desde el ID seleccionado en adelante.
  • —category: exporta todos los post de la categoría
  • –post_status:  exporta todos los post con un estado determinado: trash, publish, draft
  • —filename_format: exporta el fichero con un formato específico.

Importar contenido

Si quieres importar contenido a WordPress a través de WP-CLI, es necesario instalar el plugin WordPress Importer, que también puedes hacerlo a través de la interfaz de línea de comandos.

wp plugin install WordPress-importer

Instalar un plugin de WordPress para importar contenido

Una vez que hayas instalado el plugin, ejecuta este subcomando:

wp import exportacion/wpcli.WordPress.2022-01-24.000.xml --authors=skip

Comando de WP-CLI para importar contenido

Los parámetros que acepta –authors son:

  • create: crea un author que no existe.
  • mapping.csv: permite importar desde un CSV con una estructura determinada. El CSV debe tener un formato de dos columnas con old_user_login y new_user_login como encabezados de columna.
  • skip: deja el cambio de autor vacío.

Gestión de datos transitorios

Con WP-CLI también es posible gestionar los datos transitorios de WordPress.

Estos datos transitorios se guardan en la base de datos, concretamente en la tabla wp_options, para que WordPress pueda volver a ejecutarlos sin necesidad de volver a generarlos. Pero ojo, estos datos tienen fecha de caducidad y cuando expiran quedan almacenados igualmente, ocupando espacio y haciendo crecer tu base de datos.

Por esta razón es tan importante saber gestionar los datos transitorios de WordPress para mantener limpia la base de datos y tu aplicación más optimizada.

Para ver todas las opciones que te ofrece WP-CLI a la hora de gestionar estos datos transitorios, ejecuta el comando wp transient.

wp transient --help

Comando de WP-CLI para obtener las opciones para gestionar los datos transitorios de WordPress

Para ver los datos transitorios de tu aplicación, ejecuta lo siguiente:

wp transient list

Comando de WP-CLI para obtener las opciones del comando wp transient

Para añadir un dato transitorio de WordPress:

wp transient set lucushost “probandotransitorios” 3600

comando wpcli transitoria establecer

Si quieres obtener el valor de un transitorio:

wp transient get lucushost

Comando de WP-CLI para obtener el valor de un dato transitorio

Para eliminar un dato transitorio en concreto utiliza:

wp transient delete lucushost

Comando de WP-CLI para eliminar un transitorio

En el caso de querer eliminar todos los datos transitorios expirados:

wp transient delete --expired

Comando de WP-CLI para eliminar un transitorio expirado

Si lo que deseas es eliminar todos los datos transitorios (expirados y en ejecución) utiliza este subcomando. Ojo, esto puede causar problemas en tu aplicación debido a que eliminas datos que sí se están utilizando (datos transitorios en ejecución):

wp transient delete --all

Comando de WP-CLI para eliminar todos los transitorios

Crear un plugin

Una de las grandes ventajas que tiene utilizar WP-CLI es la posibilidad de generar código para crear tus propios plugins, temas hijo o child themes, taxonomías de WordPress o custom post types.

¿Quieres ver un ejemplo práctico? A continuación voy a crear un plugin para añadir shortcodes a un sitio de WordPress 🙂 .

Lo primero de todo, es tener claro el comando a utilizar. En este caso, como voy a generar esqueletos de código, se utiliza el comando wp_scaffold. A su vez, este comando nos permite trabajar con los siguientes subcomandos:

  • wp scaffold plugin: genera el esqueleto de un plugin.
  • wp scaffold plugin-test: genera los ficheros para realizar pruebas PhpUnit en un plugin.
  • wp scaffold child-theme: genera un tema hijo del tema que tienes instalado.
  • wp scaffold theme-test: genera los ficheros para hacer pruebas PHP Unit en un theme.
  • wp scaffold taxonomy: genera código PHP para registrar una taxonomía personalizada.
  • wp scaffold post-type: Genera código PHP para registrar un post personalizado.
  • wp scaffold _s: genera el esqueleto de un theme basado en «underscores».
  • wp scaffold block: genera código PHP, JS y CSS para registrar un bloque de Gutenberg para un plugin o tema.

Teniendo esto en cuenta, vamos a crear un plugin de ejemplo. Le llamaremos «Shorcut» y como autor «LucusHost»:

wp scaffold plugin lhplugin --plugin_name=”shortcut” --plugin_author=”LucusHost”

comando wpcli scaffold desplegar plugin

Si accedes al panel de administración de WordPress y pulsas en la sección «Plugins» ya verás que está disponible el plugin que acabamos de crear: «Shortcut».

Visualización del plugin creado en el panel de administración de WordPress

Al desplegar el plugin, se generarán los ficheros correspondientes, dentro de la ruta: /home/usuariolucushost/public_html/wp_content/plugins

Los ficheros que se crean son:

  • plugin-slug.php es el archivo principal del plugin en PHP.
  • readme.txt es el archivo readme del plugin.
  • package.json, necesario para NPM, contiene varios metadatos relevantes para el proyecto. Paquetes: grunt, grunt-wp-i18n y grunt-wp-readme-to-markdown.
  • Gruntfile.js es el archivo JS que contiene las tareas de Grunt. Tareas: i18n que contiene addtextdomain y makepot, readme que contiene wp_readme_to_markdown.
  • .editorconfig es el archivo de configuración para el Editor.
  • .gitignore dice qué archivos (o patrones) debe ignorar git.
  • .distignore dice qué archivos y carpetas deben ser ignorados en la distribución.

Ahora edita el fichero principal (plugin-slug.php) y añade el código de tu plugin.

vi wp-content/plugins/lhplugin/lhplugin.php

Editar el fichero PHP para crear un plugin con WP-CLI

Código de ejemplo para crear un plugin en WP-CLI

Plugin de ejemplo para añadir un shortcode en WordPress

Añadiendo la palabra clave, en este caso «HostingLH», se generará automáticamente un banner con un botón para ir directamente a los planes de Hosting SSD.

Resultado del plugin creado con WP-CLI

Crear un tema hijo

Otra de las tareas que puedes hacer con el comando wp scaffold de WP-CLI es la creación de un tema hijo de WordPress, partiendo del tema que tienes instalado en tu web.

¿Quieres ver cómo se hace?

Lo primero, ejecuta el siguiente subcomando en la interfaz de línea de comandos para WordPress:

wp scaffold child-theme lucushostchild --parent_theme=twentytwenty

Comando de WP-CLI para la creación de un tema hijo de WordPress

La ruta en la que se crea el child theme de WordPress es: wp-content/themes/lucushostchild

Y los ficheros que se crean son los siguientes:

  • style.css en el que están las cabeceras del tema hijo.
  • functions.php  que contiene la hoja de estilos del tema hijo y padre.

Ahora, si accedes al panel de administración de WordPress, verás que ya tienes el tema hijo creado.

Tema hijo creado en WordPress

Paquetes adicionales de WP-CLI

Además de los comandos de WP-CLI que acabamos de ver, también es posible instalar paquetes adicionales que te van a permitir ir un paso más allá con esta interfaz de línea de comandos.

Para comprobar todos los paquetes que hay disponibles, usa este subcomando:

wp package browse

Comando de WP-CLI para buscar paquetes adicionales

Gestión de paquetes

A continuación te muestro algunas de las tareas más habituales relacionadas con la gestión de paquetes adicionales en WP-CLI.

Instalación de un nuevo paquete

Si has comprobado todos los paquetes disponibles y quieres instalar alguno, puedes hacerlo de esta manera:

wp package install wp-cli/profile-command

Comando de WP-CLI para instalar paquetes adicionales

Además, puedes comprobar la ruta en la que se realiza la instalación ejecutando este subcomando:

wp package path wp-cli/profile-command

Comando de WP-CLI para obtener la ruta de instalación de un paquete

Listar paquetes instalados

Si quieres hacer una comprobación de todos los paquetes que tienes instalados en WP-CLI, ejecuta este subcomando:

wp package list

Comando de WP-CLI para ver los paquetes instalados

Actualizar paquetes

Si necesitas actualizar algún paquete que tengas instalado en WP-CLI, ejecuta lo siguiente:

wp package update

Comando de WP-CLI para actualizar un paquete

Desinstalar paquetes

Si ya no necesitas algún paquete y quieres desinstalarlo, utiliza este subcomando indicando qué paquete deseas desinstalar:

wp package uninstall runcommand/query-debug

comando wpcli paquete desinstalar

Un ejemplo práctico con el paquete WP Profile

En el ejemplo anterior, hemos instalado el paquete WP Profile, que permite diagnosticar problemas de lentitud en WordPress. Concretamente, realiza un análisis de varios indicadores en la ejecución de tu aplicación, de forma que puedas detectar puntos débiles en su funcionamiento.

Una vez instalado este paquete o cualquier otro, te recomiendo que ejecutes el parámetro –help para ver todas las opciones que tiene este comando.

wp profile --help

En este paquete, nos encontramos todas estas opciones:

  • Stage: perfila cada etapa del proceso de carga de WordPress (bootstrap, main_query, plantilla).
  • Bootstrap: donde se configura y se cargan complementos y el tema principal de WordPress. También dispara el hook de inicio.
  • main_query: es como WordPress transforma la solicitud en el wp_query principal.
  • Hook: perfila las métricas claves de los hooks de WordPress (acciones y filtros). Para perfilar las devoluciones de un hook, la acción o el filtro tienen que ejecutarse durante el curso de la solicitud.
  • Eval: perfil de código arbitrario. La ejecución del código se produce después de que WordPress se haya cargado por completo, lo que significa que puede utilizar cualquier utilidad definida en WordPress, los plugins activos o el theme actual.
  • Eval-file: ejecución del perfil de un archivo arbitrario. Tal y como hace eval puede utilizar cualquier utilidad definida en WordPress, plugins activos o theme actual.

Análisis del tiempo de carga de WordPress

Con el siguiente subcomando puedes analizar el tiempo que consume WordPress cuando carga la página de inicio.

wp profile stage --fields=stage,time,cache_ratio

Comando del paquete WP Profile para conocer el tiempo de carga de la página de inicio de WordPress

También puedes analizar cuánto tiempo tarda en cargar el Bootstrap (configuración de WordPress, complementos y theme).

wp profile stage bootstrap --fields=hook,time,cache_ratio,callback_count --spotlight

Comando del paquete WP Profile para analizar el tiempo de carga de Bootstrap

Y con este subcomando analizar todos los hooks y el tiempo de carga de cada uno.

wp profile hook --fields=hook,time,cache_ratio,callback_count --spotlight

Comando del paquete WP Profile para analisis de hooks y tiempos de carga

Fíjate que en estos ejemplos utilizo el parámetro –spotlight para que realice un filtrado automáticamente y no muestre los valores que son igual a cero, es decir, los valores nulos.

Análisis del tiempo de carga de los plugins

Si sospechas que algún plugin de tu página web está afectando al rendimiento de tu sitio, puedes comprobarlo ejecutando un subcomando. Para ello, debes seleccionar el hook plugins_loaded para comprobar si realmente es así. Por ejemplo:

wp profile hook plugins_loaded --fields=callback,time,location --spotlight

Comando del paquete WP Profile para analizar los tiempos de carga de plugins

¿Alguna duda o necesitas ayuda?

Si después de leer esta guía, tienes alguna pregunta sobre algún comando de WP-CLI o tienes dudas sobre cómo gestionar tu WordPress desde la terminal, no dudes en dejarme un comentario aquí abajo e intento echarte una mano 🙂 .

Además, recuerda que si tienes tu web con nosotros puedes escribirnos a soporte@lucushost.com y mis compañeros del equipo técnico te ayudan con lo que necesites.

¡Puntúa este artículo!

Total votos: 7. Promedio: 4.4

No hay comentarios

Escribe un comentario