Si gestionás uno o varios sitios WordPress y todavía estás haciendo todo desde el panel wp-admin, estás perdiendo tiempo. WP-CLI (WordPress Command Line Interface) es la herramienta oficial para administrar WordPress desde la línea de comandos: instalar plugins, gestionar usuarios, hacer migraciones, importar contenido, ejecutar consultas SQL, manipular medios y mucho más, todo sin tocar un navegador. Y, combinado con modelos de lenguaje como Claude o GPT, se convierte en un sistema de automatización potentísimo para cualquier desarrollador o administrador de WordPress.
En esta guía vas a encontrar qué es WP-CLI, cómo instalarlo, los comandos esenciales agrupados por categoría, patrones reales de automatización, y varias formas concretas de integrarlo con IA para ahorrar horas de trabajo repetitivo.
¿Qué es WP-CLI?
WP-CLI es una interfaz de línea de comandos oficial mantenida por la comunidad de WordPress. Permite ejecutar prácticamente cualquier acción del panel administrativo —y muchas que no están disponibles en él— mediante comandos en una terminal. Funciona sobre PHP y se comunica directamente con la base de datos y el core de WordPress, lo que lo hace órdenes de magnitud más rápido que la interfaz web.
Su uso es estándar en flujos profesionales: hosting administrado, pipelines de CI/CD, scripts de mantenimiento, migraciones masivas, debugging y entornos donde no hay (o no debería haber) acceso por navegador a producción.
Ventajas técnicas de usar WP-CLI
- Velocidad: instalar 20 plugins desde la terminal toma segundos; desde el panel, varios minutos.
- Automatización: cualquier comando puede ir dentro de un script bash, un cron job, un Dockerfile, un workflow de GitHub Actions o un playbook de Ansible.
- Operaciones por lote: ejecutar la misma tarea sobre cientos de posts, usuarios o sitios (en multisite) con una sola línea.
- Acceso a operaciones críticas: search-replace seguro con serialización PHP, regeneración de miniaturas, transients, opciones, cron de WordPress, etc.
- Independencia del frontend: si el sitio está caído por un plugin o tema, WP-CLI sigue funcionando y te permite desactivarlo.
- Integración con DevOps: encaja naturalmente en contenedores Docker, despliegues Kubernetes y entornos efímeros.
- Extensible: podés crear tus propios comandos en PHP, distribuidos como paquetes.
Instalación de WP-CLI
La instalación recomendada en Linux y macOS es vía el archivo Phar:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
wp --infoSi todo está bien, wp --info mostrará la versión de PHP, la versión de WP-CLI y la ruta de configuración. En entornos Docker es común agregarlo directamente en el Dockerfile del contenedor PHP-FPM. Para Windows existe la opción de WSL2 o el instalador comunitario, pero el caso más profesional siempre va a ser Linux.
Configuración recomendada
WP-CLI lee opcionalmente un archivo wp-cli.yml en la raíz del proyecto. Sirve para fijar el path de la instalación, el usuario por defecto, alias remotos para administrar sitios por SSH y más.
path: /var/www/html
url: https://midominio.com
user: admin
@produccion:
ssh: [email protected]/var/www/htmlCon ese alias podés ejecutar comandos contra producción desde tu máquina local: wp @produccion plugin list.
Comandos esenciales de WP-CLI
WP-CLI organiza sus comandos por subcomandos. A continuación, los más importantes agrupados por área.
Core: instalación y actualización de WordPress
wp core download --locale=es_AR
wp core config --dbname=mibase --dbuser=root --dbpass=clave
wp core install --url=midominio.com --title="Mi sitio" --admin_user=admin --admin_password=clave [email protected]
wp core update
wp core update-db
wp core verify-checksumsEl último comando es especialmente útil para detectar archivos del core modificados, una señal típica de infección.
Plugin: gestión de plugins
wp plugin list
wp plugin install wordpress-seo --activate
wp plugin install woocommerce contact-form-7 wp-super-cache --activate
wp plugin update --all
wp plugin deactivate --all
wp plugin delete helloTheme: gestión de temas
wp theme list
wp theme install twentytwentyfive --activate
wp theme update --all
wp theme delete twentytwentythreeUser: gestión de usuarios
wp user list
wp user create editor1 [email protected] --role=editor --user_pass=clave
wp user update 5 --user_pass=NuevaClaveSegura123
wp user delete 12 --reassign=1
wp user reset-password adminPost: contenido
wp post list --post_type=post --posts_per_page=20 --format=table
wp post create --post_type=post --post_title="Mi título" --post_status=publish --post_content="Contenido del post"
wp post update 123 --post_status=draft
wp post delete 456 --force
wp post generate --count=50 --post_type=postEl comando wp post generate es excelente para crear datos de prueba en entornos de staging.
Option: opciones de WordPress
wp option get siteurl
wp option update blogname "Nuevo nombre del sitio"
wp option update blogdescription "Nueva descripción"
wp option list --search="*_transient_*"
wp option delete _transient_obsoletoDatabase: la herramienta más potente
wp db export backup-$(date +%F).sql
wp db import backup.sql
wp db query "SELECT ID, post_title FROM wp_posts WHERE post_status='publish' LIMIT 10"
wp db optimize
wp db check
wp db size --tablesSearch-Replace: el comando que justifica todo
Cambiar de dominio en WordPress es complejo porque muchos datos se guardan serializados en PHP. Si hacés un UPDATE directo en SQL, rompés el sitio. wp search-replace maneja la serialización correctamente.
wp search-replace 'https://staging.midominio.com' 'https://midominio.com' --dry-run
wp search-replace 'https://staging.midominio.com' 'https://midominio.com' --all-tables
wp search-replace '//cdn.viejo.com' '//cdn.nuevo.com' --skip-columns=guidSiempre ejecutar primero con --dry-run para ver cuántas filas se van a tocar antes de aplicar.
Media: gestión de archivos multimedia
wp media import /ruta/local/*.jpg --post_id=10 --title="Galería"
wp media regenerate --yes
wp media regenerate --image_size=thumbnailCache, Cron y Transients
wp cache flush
wp transient delete --all
wp cron event list
wp cron event run --due-nowMultisite
wp site list
wp site create --slug=sitio2 --title="Segundo sitio"
wp site empty --yes
wp site delete 5Automatización avanzada con scripts
El verdadero valor de WP-CLI aparece cuando lo combinás con shell scripting. Un caso clásico: instalar y configurar un WordPress nuevo desde cero en menos de un minuto.
#!/bin/bash
SITE_URL="https://nuevo.midominio.com"
ADMIN_USER="admin"
ADMIN_PASS=$(openssl rand -base64 16)
ADMIN_MAIL="[email protected]"
wp core download --locale=es_AR
wp config create --dbname=nuevo_db --dbuser=root --dbpass=root
wp db create
wp core install --url=$SITE_URL --title="Sitio nuevo" \
--admin_user=$ADMIN_USER --admin_password=$ADMIN_PASS --admin_email=$ADMIN_MAIL
wp plugin install wordpress-seo wp-super-cache wordfence --activate
wp plugin delete hello akismet
wp theme install astra --activate
wp option update blogdescription "Sitio listo en segundos"
wp rewrite structure '/%postname%/' --hard
echo "Sitio listo. Password admin: $ADMIN_PASS"Este patrón es el que usan los hostings administrados para aprovisionar sitios en segundos. Lo mismo aplica a copias de seguridad nocturnas, sincronización staging→producción, auditorías de plugins desactualizados, limpieza de revisiones de posts, etc.
WP-CLI + IA: integraciones reales y potentes
Acá es donde WP-CLI se vuelve verdaderamente moderno. Combinarlo con un LLM (Claude, GPT, Gemini, Llama local con Ollama) abre escenarios que antes requerían plugins comerciales caros o desarrollo a medida.
1. Generación masiva de contenido SEO desde la terminal
Podés escribir un script que tome una lista de keywords, llame a la API de un LLM por cada una, y use wp post create para publicar el resultado como borrador, listo para revisión humana.
#!/bin/bash
while read keyword; do
CONTENIDO=$(curl -s https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d "{
\"model\": \"claude-sonnet-4-5\",
\"max_tokens\": 2000,
\"messages\": [{\"role\":\"user\",\"content\":\"Escribí un artículo SEO sobre: $keyword. HTML limpio sin CSS.\"}]
}" | jq -r '.content[0].text')
wp post create --post_title="$keyword" --post_content="$CONTENIDO" --post_status=draft
done < keywords.txtEn menos de cinco minutos podés tener 50 borradores listos para editar. La clave es no publicar automáticamente: el flujo correcto es borrador → revisión humana → publicación.
2. Optimización automática de meta descripciones y títulos
Un script puede recorrer todos los posts publicados con wp post list, enviar el contenido al LLM pidiéndole que genere una meta description de 155 caracteres, y guardarla con wp post meta update en el campo correspondiente del plugin SEO (Yoast, Rank Math, etc.).
wp post list --post_type=post --field=ID --posts_per_page=-1 | while read ID; do
TITULO=$(wp post get $ID --field=post_title)
CONTENIDO=$(wp post get $ID --field=post_content)
META=$(echo "$CONTENIDO" | tu_script_llm "$TITULO")
wp post meta update $ID _yoast_wpseo_metadesc "$META"
done3. Detección de contenido duplicado o canibalización de keywords
Exportar títulos y URLs con wp post list --format=json, pasarlos a un LLM y pedirle que agrupe los posts que compiten por la misma intención de búsqueda. El output es accionable: qué unir, qué redirigir, qué reescribir.
4. Limpieza inteligente de la base de datos
Usar wp db query para listar revisiones, transients, comentarios marcados como spam, posts huérfanos, y pasar el listado a un LLM que clasifique qué borrar y qué conservar. Después aplicar las decisiones con wp post delete o wp db query.
5. Migración inteligente entre dominios
Antes de un wp search-replace, podés pedirle al LLM que analice un dump de la base y detecte patrones poco evidentes: URLs incrustadas en JSON, dominios viejos en metadatos de medios, referencias en opciones serializadas que el search-replace estándar puede no resolver bien.
6. Análisis de logs y debugging
Combinar wp cli info, wp plugin list, el log de errores y la consulta de slow queries, todo dentro de un prompt para que el LLM diagnostique problemas de performance o conflictos de plugins.
7. Comandos personalizados con IA embebida
WP-CLI permite crear comandos propios en PHP. Podés desarrollar un comando como wp ia traducir 123 --idioma=en que tome un post, lo mande a la API del LLM y guarde la traducción como un nuevo post con el plugin de multilenguaje correspondiente. Esto convierte a WP-CLI en una verdadera plataforma extensible con IA.
8. Integración con Ollama para entornos privados
Si la privacidad o el costo son críticos, podés correr un modelo local con Ollama (Llama 3.1, Mistral, Qwen) y reemplazar la llamada a la API externa por una local en http://localhost:11434. El sitio nunca expone el contenido a un tercero y el costo marginal por inferencia tiende a cero.
Casos de uso reales para freelancers y agencias
- Onboarding de clientes: aprovisionar un WordPress configurado con los plugins y temas estándar de tu agencia en un solo comando.
- Mantenimiento mensual: actualizar core, plugins y temas en 50 sitios desde un único servidor con SSH y alias de WP-CLI.
- Migraciones: bajar producción, levantar staging, hacer search-replace, importar la base. Todo automatizable.
- Auditorías: detectar plugins abandonados, archivos del core modificados, opciones huérfanas, posts con problemas SEO.
- Generación de contenido: pipelines completos de IA para crear borradores SEO en escala con revisión humana al final.
Buenas prácticas y seguridad
- Nunca ejecutes WP-CLI como usuario root. Usá el usuario propietario de los archivos (típicamente
www-datao el usuario del hosting). - Hacé siempre
wp db exportantes de operaciones masivas o desearch-replace. - Usá
--dry-runen cualquier comando que modifique muchos registros. - Versioná tu
wp-cli.ymly tus scripts en Git, pero nunca las credenciales. - Para integraciones con LLMs, almacená las API keys en variables de entorno o gestores de secretos (HashiCorp Vault, AWS Secrets Manager), nunca en el script.
- Limitá la salida de los LLMs antes de insertarla en la base: sanitizá HTML, validá longitudes, controlá costos.
- En multisite, prestá atención al flag
--urlpara apuntar al sitio correcto.
WP-CLI es la diferencia entre administrar WordPress como aficionado o hacerlo como profesional. Te permite ejecutar en segundos tareas que en el panel toman minutos, automatizar flujos completos, mantener decenas de sitios sin esfuerzo y, sobre todo, abrir la puerta a integraciones con IA que multiplican tu productividad sin reemplazar el criterio humano.
Si todavía no lo estás usando, instalalo hoy, empezá por los comandos básicos (wp plugin list, wp option get siteurl, wp db export) y avanzá hacia scripts más complejos. En poco tiempo vas a estar combinando WP-CLI con un LLM, automatizando tu propio flujo SEO y preguntándote cómo trabajabas antes sin esto.
WP-CLI no reemplaza al panel de WordPress: lo trasciende. Y combinado con IA, redefine lo que un desarrollador o administrador puede hacer en un día de trabajo.











