WP-CLI para Webmasters: 50 Comandos que te Salvarán la Vida

Inicio » General » WP-CLI para Webmasters: 50 Comandos que te Salvarán la Vida
Contenidos ocultar

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:

  • Más rápido (segundos vs minutos)
  • Scriptable (automatización)
  • No consume memory PHP del admin
  • Funciona cuando admin panel falla
  • Requisitos:

  • Acceso SSH al servidor
  • Linux/macOS (Windows: WSL2)
  • PHP 7.4+ (8.2+ recomendado)
  • 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

    Listar sidebars

    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

  • [ ] WP-CLI instalado globalmente
  • [ ] Autocompletado configurado
  • [ ] Alias en wp-cli.yml creados
  • Mantenimiento Diario

  • [ ] Actualizar core/plugins/themes
  • [ ] Limpiar transients
  • [ ] Verificar backups
  • Mantenimiento Semanal

  • [ ] Optimizar base de datos
  • [ ] Borrar spam comentarios
  • [ ] Verificar core checksums
  • [ ] Revisar revisiones antiguas
  • Mantenimiento Mensual

  • [ ] Regenerar thumbnails
  • [ ] Buscar y reemplazar si migró contenido
  • [ ] Backup completo fuera del servidor
  • [ ] Revisar usuarios y roles
  • 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:

  • Actualizaciones: 5 minutos vs 1 hora
  • Backups: 2 minutos vs 30 minutos
  • Migraciones: 30 minutos vs 4 horas
  • Limpieza: 10 minutos vs 2 horas
  • 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.

    Deja un comentario