Guía WP-CLI: Gestiona WordPress desde la terminal
- 54shares
- Facebook0
- Twitter10
- LinkedIn10
- Buffer34
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 🙂
Tabla de contenidos:
¿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
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.
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
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
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
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.
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
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
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
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
¡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 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
Actualizar el core de WordPress
Si tienes actualizaciones pendientes, puedes actualizar el núcleo de WordPress así:
wp core update
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
Ahora comprueba que los ficheros reinstalados corresponden con la versión de tu WordPress:
wp-core verify-checksums
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:
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
Desinstalar un plugin
Este es el subcomando para desinstalar un plugin de tu aplicación:
wp plugin uninstall akismet
Desactivar un plugin
Igualmente, también puedes desactivar un plugin en WP-CLI:
wp plugin deactivate --all
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
wp plugin activate --all
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
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
Si quieres obtener el estado de todos los instalados, ejecuta este subcomando:
wp plugin status
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
Activar un theme
Ya tienes el theme instalado, ahora puedes activarlo así:
wp theme activate twentyseventeen
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
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
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
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
Si ya has hecho los cambios en tu sitio y quieres desactivar el modo mantenimiento, ejecuta este subcomando:
wp maintenance-mode deactivate
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
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’
Por ejemplo, también puedes actualizar la zona horaria de tu sitio:
wp option update timezone_string Europe/Madrid
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
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
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
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
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
Puedes utilizar otro formato, por ejemplo:
wp db size --tables --size_format=mb --format=csv
Exportar una base de datos
Este subcomando de WP-CLI te permite exportar tu base de datos:
wp db export bbddexport.sql
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
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
Importar una base de datos
Para realizar una importación, utiliza este subcomando:
wp db import bbddexport.sql
¡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
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
Mostrar el prefijo de la base de datos
wp db prefix
Buscar una cadena de caracteres dentro de las tablas de la base de datos
wp db search lucusvirtual.es
Ejecutar una consulta en la base de datos
wp db query ‘SELECT * FROM wp_options WHERE option_name=”siteurl”’ --skip-column-name
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
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’
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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”
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
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
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
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”
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
Eliminar un post permanentemente
Por el contrario, si deseas eliminar una entrada de forma permanente ejecuta el siguiente subcomando:
wp post delete 9 --force
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)
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)
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
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
Una vez que hayas instalado el plugin, ejecuta este subcomando:
wp import exportacion/wpcli.WordPress.2022-01-24.000.xml --authors=skip
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
Para ver los datos transitorios de tu aplicación, ejecuta lo siguiente:
wp transient list
Para añadir un dato transitorio de WordPress:
wp transient set lucushost “probandotransitorios” 3600
Si quieres obtener el valor de un transitorio:
wp transient get lucushost
Para eliminar un dato transitorio en concreto utiliza:
wp transient delete lucushost
En el caso de querer eliminar todos los datos transitorios expirados:
wp transient delete --expired
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
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”
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».
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
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.
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
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.
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
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
Además, puedes comprobar la ruta en la que se realiza la instalación ejecutando este subcomando:
wp package path wp-cli/profile-command
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
Actualizar paquetes
Si necesitas actualizar algún paquete que tengas instalado en WP-CLI, ejecuta lo siguiente:
wp package update
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
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
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
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
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
¿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.
- 54shares
- Facebook0
- Twitter10
- LinkedIn10
- Buffer34
No hay comentarios