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-childInstalar y activar un tema
wp theme install twentytwentyfive --activatePlugins
Listar plugins
Lista los plugins instalados, con estado (active/inactive) y versión.
wp plugin list --fields=name,status,versionInstalar un plugin
Instala y activa el plugin Classic Editor.
wp plugin install classic-editor --activateActivar / desactivar un plugin
wp plugin activate woocommerce
wp plugin deactivate woocommerceUsuarios
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,roleLimpiar sesiones de usuarios
Borra transients caducados (más fino que --all). Evita que la base de datos acumule basura sin necesidad.
wp transient delete --expiredBorrar 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=1Comentarios / 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) --forcePosts y contenido
Crear un post y lo publica, directamente desde la terminal.
wp post create --post_type=post --post_title="juanjo.xyz" --post_status=publishEliminar 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) --forceBase de datos
Exportar base de datos
Crea un backup de la base de datos en un archivo .sql.
wp db export backup.sqlImportar base de datos
wp db import backup.sqlBusqueda en la BD
wp search-replace "http://tuweb.dev" "https://tuweb.com" --dry-runComprobar integridad de tablas
wp db checkTOP 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=noRegenerar thumbnails
Regenera todos los tamaños de imágenes según tu configuración actual, al cambiar de tema o modificar add_image_size().
wp media regenerate --yesListar 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.
wp core versionActualizar 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 --expiredVaciar 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.
wp cache flushBorrar 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.
wp core verify-checksumsRegenerar los enlaces permanentes
Actualiza la configuración de los permalinks, Imprescindible después de cambiar estructura de URLs, instalar CPTs o tocar .htaccess
wp rewrite flushRevisar 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.
wp db optimizeVer cron jobs activos
Detecta si tienes tareas que se ejecutan demasiado o están atascadas.
wp cron event listRevisar consultas lentas (con plugin Query Monitor activo):
wp qm db_queriesVerificar checksums de Core (detecta archivos corruptos/malware):
wp core verify-checksumsReinstalar Core por encima (sin tocar wp-content):
wp core download --forceActualizar 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 --hardOptimizar todas las tablas de la red
wp site list --field=url | xargs -I % wp --url=% db optimize