WP-CLI para Webmasters: 50 Comandos que te Salvarán la Vida
Si gestionas múltiples sitios WordPress, el admin panel es una pérdida de tiempo.
WP-CLI es la interfaz de línea de comandos de WordPress. Te permite hacer en segundos lo que tarda minutos en el panel admin.
Pero la mayoría de webmasters no lo usa. Y están perdiendo horas cada semana.
Qué es WP-CLI
WP-CLI = WordPress Command Line Interface
Herramienta oficial que te permite gestionar WordPress sin navegador.
Ventajas:
Requisitos:
Instalación
Descarga
`bash
Descargar WP-CLI
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
Hacerlo ejecutable
chmod +x wp-cli.phar
Mover a PATH
sudo mv wp-cli.phar /usr/local/bin/wp
`
Verificar instalación
`bash
Ver versión
wp –info
Ver información PHP
wp –info | grep php-binary
`
Autocompletado (opcional pero recomendado)
`bash
Descargar autocompletado
wget https://github.com/wp-cli/wp-cli/raw/master/utils/wp-completion.bash
Añadir a .bashrc
echo «source ~/wp-completion.bash» >> ~/.bashrc
source ~/.bashrc
`
Comandos Esenciales (Diario)
Info del sitio
`bash
Versión WordPress
wp core version
Versión PHP
wp cli info
Lista de plugins
wp plugin list
Lista de themes
wp theme list
Usuarios
wp user list
`
Actualizaciones
`bash
Actualizar WordPress core
wp core update
Actualizar plugins
wp plugin update –all
Actualizar themes
wp theme update –all
Actualizar todo
wp core update && wp plugin update –all && wp theme update –all
`
Gestión Plugins
`bash
Instalar plugin
wp plugin install yoast seo
Activar plugin
wp plugin activate yoast-seo
Desactivar plugin
wp plugin deactivate yoast-seo
Borrar plugin
wp plugin delete yoast-seo
Instalar y activar en uno
wp plugin install yoast-seo –activate
Desactivar todos
wp plugin deactivate –all
`
Gestión Themes
`bash
Instalar tema
wp theme install twentytwentyfour
Activar tema
wp theme activate twentytwentyfour
Lista themes con detalles
wp theme list –format=table
Borrar tema
wp theme delete old-theme
`
Gestión Contenido
Posts
`bash
Crear post desde CLI
wp post create –post_title=’Título’ –post_content=’Contenido’ –post_status=publish
Listar posts
wp post list –fields=ID,post_title,post_status
Editar post
wp post update 123 –post_title=’Nuevo título’
Borrar post
wp post delete 123
Borrar posts en bulk (papelera)
wp post delete $(wp post list –field=ID –post_status=trash) –force
Contar posts por status
wp post count –by-status=publish,draft
`
Media / Imágenes
`bash
Listar imágenes
wp media list –fields=ID,filename,title –format=table
Subir imagen
wp media import /ruta/a/imagen.jpg –title=’Mi Imagen’
Regenerar thumbnails (útil tras cambiar tamaños)
wp media regenerate $(wp media list –field=ID –format=ids)
Limpiar media (no adjuntado a ningún post)
wp media delete $(wp media list –format=ids –post_parent=0)
`
Usuarios
`bash
Crear usuario
wp user create usuario user@example.com –role=editor –first_name=Juan –last_name=Perez
Lista usuarios
wp user list –fields=ID,user_login,user_email,roles –format=table
Cambiar contraseña
wp user update 1 –user_pass=nueva_password
Cambiar rol
wp user update 1 –role=administrator
Borrar usuario y reasignar contenido
wp user delete 5 –reassign=1
`
Mantenimiento y Limpieza
Base de Datos
`bash
Optimizar base de datos
wp db optimize
Reparar base de datos
wp db repair
Resetear base de datos (CUIDADO – borra contenido)
wp db reset –yes
Exportar base de datos
wp db export backup.sql
Importar base de datos
wp db import backup.sql
Hacer query SQL
wp db query «SHOW TABLES»
`
Transients (Caché)
`bash
Listar transients
wp transient list –fields=name,exp,value
Borrar todos los transients
wp transient delete –all
Borrar transients expirados
wp transient delete –expired
Borrar transients específicos
wp transient delete –name=_site_transient_update_plugins
`
Revisiones (Historial)
`bash
Ver revisiones de posts
wp post list –post_type=revision
Borrar revisiones antiguas
wp post delete $(wp post list –post_type=revision –field=ID –format=ids) –force
Borrar revisiones más antiguas de 30 días
wp post delete $(wp post list –post_type=revision –field=ID –post_date=$(date -d ’30 days ago’ ‘+%Y-%m-%d’) –format=ids) –force
`
Spam
`bash
Borrar comentarios spam
wp comment delete $(wp comment list –status=spam –field=ID) –force
Borrar comentarios pendientes
wp comment delete $(wp comment list –status=hold –field=ID) –force
Aprobar todos pendientes
wp comment update $(wp comment list –status=hold –field=ID) –approve
`
Optimización y Rendimiento
Flush Caché
`bash
Si usas WP Rocket
wp wp rocket flush
Si usas W3 Total Cache
wp w3-total-cache flush all
Si usas Super Cache
wp super-cache flush
Flush object cache
wp cache flush
`
Regenerar Thumbnails
`bash
Regenerar todos
wp media regenerate –yes
Regenerar solo imágenes específicas
wp media regenerate 123 456 789 –yes
Regenerar solo cierto tamaño
wp media regenerate –image_size=thumbnail
`
Search Replace (Útil al migrar)
`bash
Buscar y reemplazar en base de datos
wp search-replace ‘http://viejo.com’ ‘https://nuevo.com’ –recurse-objects
Buscar y reemplazar solo en posts
wp search-replace ‘texto viejo’ ‘texto nuevo’ –post_type=post
Dry run (ver qué cambiaría sin hacer cambios)
wp search-replace ‘viejo’ ‘nuevo’ –dry-run
`
Seguridad
Core Verify
`bash
Verificar integridad WordPress core
wp core verify-checksums
Reinstalar core si hay archivos modificados
wp core download –force
`
Salts de Seguridad
`bash
Regenerar salts en wp-config.php
wp config shuffle-salts
`
Hardening
`bash
Desactivar file editing desde admin
wp config set DISALLOW_FILE_EDIT true –raw
Desactivar install/update plugins/themes desde admin
wp config set DISALLOW_FILE_MODS true –raw
Limitar revisiones
wp config set WP_POST_REVISIONS 3 –raw
Aumentar autosave interval
wp config set AUTOSAVE_INTERVAL 300 –raw
`
Debugging
Modo Debug
`bash
Activar WP_DEBUG
wp config set WP_DEBUG true –raw
Activar WP_DEBUG_LOG
wp config set WP_DEBUG_LOG true –raw
Activar WP_DEBUG_DISPLAY
wp config set WP_DEBUG_DISPLAY false –raw
Desactivar todo
wp config set WP_DEBUG false –raw
`
Rewrites (Permalinks)
`bash
Regenerar reglas rewrite
wp rewrite flush
Ver estructura de reglas
wp rewrite list –format=csv
`
Log de errores
`bash
Ver últimas líneas de debug.log
tail -f wp-content/debug.log
Buscar errores específicos
grep «Fatal» wp-content/debug.log
`
Backup y Restore
Backup
`bash
Backup completo con plugins
wp db export backup-$(date +%Y%m%d).sql
wp plugin list –format=csv > plugins-backup.csv
wp theme list –format=csv > themes-backup.csv
Backup uploads
tar -czf uploads-backup.tar.gz wp-content/uploads/
`
Restore
`bash
Restaurar base de datos
wp db import backup-20260209.sql
Restaurar plugins desde lista
while IFS=, read -r slug status; do
wp plugin install $slug –force
done
`
Multisite
`bash
Listar sitios en network
wp site list –fields=blog_id,domain,path
Ejecutar comando en todos los sitios
wp site list –field=url | xargs -I % wp plugin list –url=%
Crear nuevo sitio
wp site create –slug=nuevo-sitio –title=’Nuevo Sitio’
Cambiar tema en todos los sitios
wp site list –field=url | xargs -I % wp theme activate twentytwentyfour –url=%
`
Automatización con Scripts
Script de mantenimiento diario
`bash
#!/bin/bash
mantenimiento.sh – Ejecutar diariamente
SITES=(«/var/www/site1» «/var/www/site2» «/var/www/site3»)
for SITE in «${SITES[@]}»; do
cd $SITE
# Actualizar core
wp core update –quiet
# Actualizar plugins
wp plugin update –all –quiet
# Optimizar DB
wp db optimize –quiet
# Limpiar transients
wp transient delete –all –quiet
# Regenerar media (una vez al mes)
# wp media regenerate –quiet
echo «Mantenimiento completado: $SITE»
done
`
Script de backup semanal
`bash
#!/bin/bash
backup.sh – Backup semanal
DATE=$(date +%Y%m%d)
BACKUP_DIR=»/backups/$DATE»
mkdir -p $BACKUP_DIR
Backup base de datos
wp db export $BACKUP_DIR/database.sql
Backup plugins y themes
tar -czf $BACKUP_DIR/plugins.tar.gz wp-content/plugins/
tar -czf $BACKUP_DIR/themes.tar.gz wp-content/themes/
Backup uploads (si no es muy grande)
tar -czf $BACKUP_DIR/uploads.tar.gz wp-content/uploads/
echo «Backup completado: $BACKUP_DIR»
`
Atajos de Productividad
Alias (wp-cli.yml)
Crea archivo wp-cli.yml en tu directorio WordPress:
`yaml
wp-cli.yml
@todos:
– run: cd /var/www/site1 && wp plugin update –all
– run: cd /var/www/site2 && wp plugin update –all
@backup:
– db export
– run: tar -czf backup.tar.gz wp-content/
Usar: wp @todos
Usar: wp @backup
`
Shell interactivo
`bash
Entrar en shell WP-CLI
wp shell
Dentro del shell puedes usar PHP y funciones WP
wp> get_bloginfo(‘name’);
=> «Mi Sitio WordPress»
wp> wp_get_current_user()->user_login;
=> «admin»
Salir
wp> exit
`
Comandos Avanzados
Cron Jobs
`bash
Listar eventos cron
wp cron event list
Ejecutar cron ahora
wp cron event run –due-now
Programar evento
wp cron schedule schedule_hourly –hook=my_event –next=now
Desactivar WP-CRON (usar system cron)
wp config set DISABLE_WP_CRON true –raw
`
Export/Import
`bash
Exportar posts a XML
wp export –dir=exports –post_type=post
Importar desde XML
wp import imports/posts.xml –authors=create
`
Sidebar/Widgets
`bash
wp sidebar list
Añadir widget
wp widget add archive sidebar-1 2
Resetear widgets
wp sidebar reset sidebar-1
`
Troubleshooting
Permisos de archivos
`bash
Reparar permisos recursivos
find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;
`
Propietario de archivos
`bash
Cambiar propietario a www-data
chown -R www-data:www-data /var/www/html
`
Debug de comandos
`bash
Ver detalles de ejecución
wp plugin list –debug
Ver comandos disponibles
wp cli completions –shell=bash –line=wp
`
Errores Comunes
Error: «Database error»
`bash
Verificar conexión
wp db check
Reparar tablas
wp db repair
`
Error: «Plugin activation failed»
`bash
Ver log de errores
wp plugin activate nombre-plugin –debug
Verificar dependencias
wp plugin list –field=name | grep nombre-plugin
`
Error: «Out of memory»
`bash
Aumentar memory limit en wp-config.php
wp config set WP_MEMORY_LIMIT ‘256M’ –raw
`
Checklist WP-CLI para Webmasters
Instalación
Mantenimiento Diario
Mantenimiento Semanal
Mantenimiento Mensual
Conclusión
WP-CLI no es opcional para webmasters serios en 2026. Es la diferencia entre gestionar 5 sitios eficientemente o perder el tiempo en paneles admin.
Basándome en experiencia gestionando 30+ sitios, WP-CLI me ahorra 10+ horas semanales:
El learning curve inicial vale la pena. Después de 2 semanas, no querrás volver al panel admin para tareas rutinarias.
Empieza con los 10 comandos esenciales. Luego añade 10 más cada semana. En 2 meses, serás más productivo que el 95% de webmasters.



