Comandos de WP-CLI con ejemplos

27 de septiembre de 2025

WP-CLI es la herramienta de línea de comandos para WordPress. Con ella podemos gestionar temas, plugins, usuarios, posts y la base de datos sin entrar al panel.

Puedes ejecutar estos comandos dentro de tu proyecto con DDEV: ddev wp theme list ya que DDEV redirige automáticamente a WP-CLI dentro del contenedor.

Temas

Listar temas

Muestra los temas instalados, su estado (activo/inactivo) y versión.

wp theme list --fields=name,status,version
+----------------------------+----------+---------+
| name                       | status   | version |
+----------------------------+----------+---------+
| twentytwentyfive           | inactive | 1.0     |
| wecodeart-developer-child  | active   | 1.0.0   |
+----------------------------+----------+---------+

Activar un tema

Activa el tema indicado. WordPress pasará a usarlo de inmediato.

wp theme activate wecodeart-developer-child

Instalar y activar un tema

wp theme install twentytwentyfive --activate

Plugins

Listar plugins

Lista los plugins instalados, con estado (active/inactive) y versión.

wp plugin list --fields=name,status,version

Instalar un plugin

Instala y activa el plugin Classic Editor.

wp plugin install classic-editor --activate

Activar / desactivar un plugin

wp plugin activate woocommerce
wp plugin deactivate woocommerce

Usuarios

Crear usuario con rol y contraseña inicial

wp user create juanjo user@juanjo.xyz --role=editor --user_pass=tortilladepatata


Listar usuarios

Muestra ID, nombre de usuario y rol.

wp user list --fields=ID,user_login,role

Limpiar sesiones de usuarios

Borra transients caducados (más fino que --all). Evita que la base de datos acumule basura sin necesidad.

wp transient delete --expired

Borrar usuario

Borra todos los usuarios que pertenezcan a un rol,, (en este caso customer)

wp user delete $(wp user list --role=customer --field=ID) --reassign=1

Comentarios / SPAM

Optimizar comentarios pendientes/spam

Limpia comentarios basura sin pasar por el panel.

wp comment delete $(wp comment list --status=spam --format=ids)
wp comment delete $(wp comment list --status=trash --format=ids)

Purgar spam y papelera

wp comment delete $(wp comment list --status=spam --format=ids) --force
wp comment delete $(wp comment list --status=trash --format=ids) --force

Posts y contenido

Crear un post y lo publica, directamente desde la terminal.

wp post create --post_type=post --post_title="juanjo.xyz" --post_status=publish

Eliminar revisiones de entradas

Borra todas las revisiones almacenadas reduciendo el peso en la base de datos si tienes muchas ediciones acumuladas.

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

Contar revisiones y borrarlas

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

Base de datos

Exportar base de datos

Crea un backup de la base de datos en un archivo .sql.

Importar base de datos

Busqueda en la BD

wp search-replace "http://tuweb.dev" "https://tuweb.com" --dry-run

Comprobar integridad de tablas

TOP 20 opciones autoload más grandes

wp db query "
SELECT option_name, LENGTH(option_value) AS size
FROM wp_options WHERE autoload='yes'
ORDER BY size DESC LIMIT 20;"
#Desactivar autoload de una opción grande (ejemplo):
wp option update some_plugin_option_name "$(wp option get some_plugin_option_name)" --autoload=no

Regenerar thumbnails

Regenera todos los tamaños de imágenes según tu configuración actual, al cambiar de tema o modificar add_image_size().

Listar adjuntos huérfanos (sin post padre)

wp db query "SELECT COUNT(*) FROM wp_posts a WHERE a.post_type='attachment' AND a.post_parent NOT IN (SELECT ID FROM wp_posts);"

Sistema

Ver versión de WordPress

Muestra la versión actual instalada de WordPress.

Actualizar WordPress / plugins / themes

Actualiza WordPress a la última versión disponible.

wp core update
wp plugin update --all
wp theme update --all
# auto enable
wp plugin auto-updates enable --all
wp theme auto-updates enable --all
# disable
wp plugin auto-updates disable --all
wp theme auto-updates disable --all
wp theme auto-updates disable twentytwentyfive
wp plugin auto-updates disable woocommerce

Limpiar transients

Borra todos los transients (datos temporales en la base de datos), es muy util cuando pruebas cachés o integraciones de terceros y quieres limpiar residuos.

wp transient delete --all
# caducados (más fino que --all)
wp transient delete --expired

Vaciar la caché interna

Elimina la caché de objetos de WordPress, práctico en entornos de desarrollo o cuando usas plugins de caché y quieres empezar de cero.

Borrar archivos temporales de caché del core

Verifica que los archivos de WordPress Core no han sido modificados, Ayuda a detectar restos de malware o archivos corruptos.

Regenerar los enlaces permanentes

Actualiza la configuración de los permalinks, Imprescindible después de cambiar estructura de URLs, instalar CPTs o tocar .htaccess

Revisar y ajustar opciones

Permite consultar y cambiar valores en la tabla wp_options, corrige las URLs tras migraciones o actualizar descripciones sin abrir el admin.

wp option get siteurl
wp option update blogdescription "Tortilla de Patata"

Optimizar tablas de la base de datos

Reorganiza y optimiza las tablas MySQL de WordPress, Reduce fragmentación y puede mejorar el rendimiento general.

Ver cron jobs activos

Detecta si tienes tareas que se ejecutan demasiado o están atascadas.

Revisar consultas lentas (con plugin Query Monitor activo):

Verificar checksums de Core (detecta archivos corruptos/malware):

Reinstalar Core por encima (sin tocar wp-content):

Actualizar rutas

wp core download --forwp option update siteurl "https://tuweb.com"
wp option update home "https://tuweb.com"

Multisite

Flush de rewrite por sitio

wp site list --field=url | xargs -I % wp --url=% rewrite flush --hard

Optimizar todas las tablas de la red

wp site list --field=url | xargs -I % wp --url=% db optimize


Tags: