Crad-wordpress-mgr: Herramienta de gestión de WordPress para Core-Admin


#1

Introducción

crad-wordpress-mgr.pyc es una herramienta de línea de comandos para la gestión centralizada de instalaciones WordPress en servidores administrados con Core-Admin. Permite listar, analizar y optimizar múltiples instalaciones WordPress desde una única interfaz.

Requisitos

  • Acceso root al servidor
  • Core-Admin con el módulo wordpress_management instalado

Opciones disponibles

Comando Descripción
-l, --list-wordpress Listar todas las instalaciones WordPress del sistema
-u, --list-users <wordpress> Listar usuarios de un WordPress específico
-U, --list-all-users Listar usuarios de todos los WordPress en una tabla consolidada
-p, --list-plugins <wordpress> Listar plugins instalados con estado y peso de código
-a, --show-admin-path <wordpress> Mostrar ruta de administración (detecta wps-hide-login)
-c, --create-admin <wordpress> Crear un usuario administrador
-r, --remove-user <wordpress> Eliminar un usuario
--enable-debug <wordpress> Activar WP_DEBUG y WP_DEBUG_LOG
--disable-debug <wordpress> Desactivar WP_DEBUG
--check-performance <wordpress> Analizar rendimiento y mostrar recomendaciones
--fix-performance <wordpress> Aplicar todas las correcciones de rendimiento
--clean-revisions <wordpress> Eliminar revisiones de posts
--clean-transients <wordpress> Eliminar transients expirados
--clean-postmeta <wordpress> Eliminar postmeta huérfanos
--upgrade-php <wordpress> Actualizar PHP a la versión más reciente soportada
--fix-memory-limit <wordpress> Ajustar memory_limit a 256M
--fix-opcache <wordpress> Habilitar opcache si está desactivado

Opciones adicionales

Opción Descripción
--json Salida en formato JSON
-v, --verbose Modo verboso
-y, --yes Omitir confirmaciones (usar con precaución)
--show-credentials Mostrar credenciales de base de datos
--show-inactive Mostrar solo plugins inactivos (con -p)
--sort-by-weight Ordenar plugins por peso de código (con -p)
--login <usuario> Usuario para crear/eliminar
--email <email> Email para crear usuario
--password <contraseña> Contraseña (se genera automáticamente si no se especifica)

Identificación de WordPress

La mayoría de comandos aceptan un identificador de WordPress que puede ser:

  • Ruta de carpeta: /var/webs/ejemplo.com/html
  • Ruta a wp-config.php: /var/webs/ejemplo.com/html/wp-config.php
  • Nombre de dominio: ejemplo.com

Ejemplos de uso

Listar instalaciones WordPress

crad-wordpress-mgr.pyc -l

Salida:
Id  Is_active  Hosting_name         Url                        Folder
--  ---------  ------------         ---                        ------
1  |[*]       |ejemplo.com         |http://ejemplo.com        |/var/webs/ejemplo.com/html
2  |[*]       |blog.ejemplo.com    |http://blog.ejemplo.com   |/var/webs/blog.ejemplo.com/html

Analizar rendimiento

crad-wordpress-mgr.pyc --check-performance ejemplo.com

Salida:
======================================================================
WordPress Performance Analysis: ejemplo.com
======================================================================

[1/8] Checking PHP version...
[2/8] Checking Opcache status...
[3/8] Checking PHP memory limit...
[4/8] Checking autoloaded options size...
[5/8] Checking post revisions...
[6/8] Checking postmeta table size...
[7/8] Checking active plugins...
[8/8] Checking expired transients...

----------------------------------------------------------------------
SUMMARY
----------------------------------------------------------------------

Configuration:
  PHP Version:              8.2.28
  Opcache:                  Enabled
  PHP Memory Limit:         256M
  Autoloaded Options:       0.34 MB
  Post Revisions:           1250
  Postmeta Rows:            45000
  Active Plugins:           25
  Expired Transients:       150

WARNINGS (consider fixing):
  [~] Found 1250 post revisions. Consider cleaning up
  [~] Found 150 expired transients. Consider cleanup

RECOMMENDATIONS:
  1. Delete old revisions: DELETE FROM wp_posts WHERE post_type = 'revision'
  2. Clean expired transients...

Aplicar correcciones automáticas

crad-wordpress-mgr.pyc --fix-performance ejemplo.com

Este comando aplica automáticamente:
1. Actualización de PHP (si hay versión superior disponible)
2. Ajuste de memory_limit a 256M
3. Habilitación de opcache
4. Limpieza de revisiones
5. Limpieza de transients expirados
6. Limpieza de postmeta huérfanos

Listar plugins con análisis de peso

crad-wordpress-mgr.pyc -p ejemplo.com --sort-by-weight

Salida:
Name                     Is_active  Php_files  Lines   Size
----                     ---------  ---------  -----   ----
woocommerce             |[*]       |3511      |678.5K |72.5 MB
elementor               |[*]       |1273      |198.2K |67.5 MB
wordfence               |[*]       |553       |145.8K |20.9 MB
advanced-custom-fields  |[ ]       |268       |60.3K  |23.2 MB

Total: 25 plugins (20 active, 5 inactive)
Active plugins code weight: 1250.5K lines of PHP
Inactive plugins code weight: 180.2K lines (can be deleted to free space)

Ver solo plugins inactivos

crad-wordpress-mgr.pyc -p ejemplo.com --show-inactive

Crear usuario administrador

crad-wordpress-mgr.pyc -c ejemplo.com --login admin_temp --email admin@ejemplo.com

Si no se especifica --password, se genera una contraseña segura automáticamente.

Mostrar ruta de administración

crad-wordpress-mgr.pyc -a ejemplo.com

Detecta automáticamente si el plugin wps-hide-login está activo y muestra la ruta personalizada:

WordPress folder: /var/webs/ejemplo.com/html
Admin path:       /mi-acceso-secreto
Login path:       /mi-acceso-secreto
WPS Hide Login:   Active (custom slug: mi-acceso-secreto)

Activar modo debug

crad-wordpress-mgr.pyc --enable-debug ejemplo.com

Esto activa WP_DEBUG, WP_DEBUG_LOG y desactiva WP_DEBUG_DISPLAY. Los errores se registrarán en wp-content/debug.log.

Uso en scripts

Para automatización, usar la opción -y para omitir confirmaciones:

# Limpiar todas las instalaciones WordPress
for domain in $(crad-wordpress-mgr.pyc -l --json | jq -r '.[].hosting_name'); do
    crad-wordpress-mgr.pyc --fix-performance "$domain" -y
done

Buenas prácticas

1. Antes de optimizar: Ejecutar --check-performance para ver el estado actual
2. Backups: Realizar backup de la base de datos antes de limpiezas masivas
3. Plugins inactivos: Revisar regularmente con -p --show-inactive y eliminar los no necesarios
4. Monitorización: Ejecutar --check-performance periódicamente para detectar problemas

Notas técnicas

- La herramienta detecta automáticamente el prefijo de tablas de cada WordPress
- Las credenciales de base de datos se leen directamente de wp-config.php
- El análisis de plugins cuenta líneas de código PHP para estimar la carga de parseo
- La actualización de PHP respeta la configuración --only-if-newer para evitar downgrades