WP Manifestindependent plugin directory
manifest / performance / compresor-imagen

OptiImg Pro

Plugin de WordPress para optimización automática de imágenes: compresión y conversión a WebP. Procesa nuevas subidas y permite optimizar en lote toda la biblioteca de medios con una interfaz moderna y segura.

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/webcoredev/compresor-imagen/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Plugin de WordPress para optimización automática de imágenes: compresión y conversión a WebP. Procesa nuevas subidas y permite optimizar en lote toda la biblioteca de medios con una interfaz moderna y segura.

Autor: Loreana Mavares
Versión: 3.4
Requisitos: WordPress 5.6+, PHP 7.4+, extensión GD (con soporte WebP) o Imagick


Características principales

  • Optimización en la subida: al subir imágenes JPG, JPEG o PNG se comprimen (nivel de calidad configurable, por defecto 6 ≈ 60%) y se genera automáticamente una versión en formato WebP.
  • Optimización en lote: interfaz en el panel de administración para procesar todas las imágenes compatibles de la biblioteca de medios (conversión a WebP y compresión), con barra de progreso en tiempo real.
  • Sin dependencias externas pesadas: todo el procesamiento se realiza con PHP nativo usando GD o Imagick, ya presentes en la mayoría de servidores.
  • Seguridad: uso de nonces, comprobación de capacidades (manage_options) y sanitización de opciones y datos entrantes.
  • Interfaz premium: página de ajustes en modo oscuro (gris carbón y acentos neón), con componentes nativos de WordPress estilizados para una experiencia moderna.

Instalación

  1. Descarga o clona el repositorio en la carpeta de plugins de WordPress:
    cd wp-content/plugins
    git clone <url-del-repositorio> compresor-imagen
  2. En el escritorio de WordPress, ve a Plugins y activa OptiImg Pro.
  3. Ve a Ajustes → OptiImg Pro para configurar el nivel de calidad (1–10), activar/desactivar la optimización automática en subida e iniciar la optimización en lote si lo deseas.

Requisitos del servidor: debe estar disponible la extensión GD (con soporte WebP) o Imagick. El plugin comprueba automáticamente cuál usar y lo indica en la página de ajustes.


Guía técnica: arquitectura modular

El plugin está pensado para ser mantenible, testeable y escalable, con separación clara de responsabilidades.

Estructura de carpetas

compresor-imagen/
├── optiimg-pro.php          # Punto de entrada, constantes y activación
├── includes/                # Lógica de negocio (core)
│   ├── class-plugin.php           # Orquestador principal
│   ├── class-image-processor.php  # Compresión y conversión WebP (GD/Imagick)
│   └── class-upload-handler.php   # Hook en subida de medios
├── admin/                   # Lógica de administración e interfaz
│   ├── class-admin.php            # Menú, página de ajustes y recursos
│   ├── class-settings.php         # Registro y sanitización de opciones
│   └── class-bulk-processor.php   # AJAX: listado de IDs y procesamiento por lotes
├── assets/
│   ├── css/admin.css              # Estilos dark mode (carbón + neón)
│   └── js/bulk-optimizer.js       # Barra de progreso y llamadas AJAX
└── README.md

Por qué es modular

  • Separación de responsabilidades:

    • includes: no conoce el admin ni la base de datos de WordPress más allá de lo necesario (opciones, adjuntos). Aquí vive la lógica de “cómo comprimir y convertir a WebP”.
    • admin: solo se carga en el panel de administración (is_admin()); se encarga de menús, opciones, AJAX y de exponer la interfaz.
    • assets: presentación (CSS/JS) separada del PHP, lo que facilita cambios de diseño y mantenimiento.
  • Hooks utilizados:

    • Subida: se usa el filtro wp_generate_attachment_metadata para, una vez generados los metadatos del adjunto, procesar el archivo subido y generar el WebP sin alterar el flujo estándar de medios.
    • La optimización en lote se hace por AJAX (acciones optiimg_pro_get_attachment_ids y optiimg_pro_process_batch) para no bloquear la interfaz y permitir una barra de progreso real.
  • Seguridad:

    • Verificación de capacidades en cada acción AJAX y en la visualización de la página de ajustes.
    • Uso de nonces en las peticiones AJAX.
    • Sanitización de opciones (sanitize_quality, sanitize_auto_upload) y de IDs en el bulk (absint, listas controladas).
  • Compatibilidad:

    • Antes de procesar, se comprueba si GD o Imagick están disponibles (y en el caso de GD, soporte WebP). Si no hay ninguno, el plugin no procesa y lo indica en la interfaz.

Esta estructura permite añadir en el futuro otros formatos, otros hooks o una API REST sin tocar la lógica de compresión, y facilita revisar el código en portafolio o por otros desarrolladores.


Licencia

GPL v2 o posterior.