Fix Media MIME Types (CLI only)

·

Fix Media MIME Types (CLI only) es un plugin ligero y eficiente que identifica y corrige cualquier tipo MIME incorrecto en tu biblioteca multimedia de WordPress.

Fix Media MIME Types (CLI only) [ver versiones / descargas].


La problemática

Cuando un cliente llega y te dice que quiere actualizar todas las imágenes de su Biblioteca Multimedia (Media) de WordPress a nuevos formatos como WebP o AVIF, se genera un pequeño problema.

Para empezar hay que decir que para nuevos ficheros es algo sencillo, porque instalando algún plugin que por defecto convierta todo a estos formatos, es suficiente… pero ¿qué hacer con las imágenes ya existentes?

Primer acercamiento

Aunque hay muchos plugins, desde hace un tiempo uno que funciona bien es Plus WebP or AVIF.

Y entre otras cosas, me gusta porque tiene varias opciones interesantes, permite elegir el formato entre WebP o AVIF, permite añadir la extensión a ficheros existentes, y permite sustituir los contenidos, que al final es lo más interesante. Y, otra cosa importante: permite hacerlo todo con WP-CLI por consola. Esto último es importante, sobre todo, para aquellos sitios con muchísimos contenidos.

La situación es que cuando estaba ejecutando ese plugin por WP-CLI, con algo como:

wp pluswebpavif avif --quality=81 --replace=true --addext=true --url=www.javiercasares.com

Me he encontrado una serie de errores que hacían que no se procesasen las imágenes. Y es que tenía unas imágenes en WebP que las detecta como JPEG porque en alguna ocasión previa ya había intentado arreglar esto de las imágenes, pero con no muy buena suerte.

Así que viendo los logs de error, he acabado detectando que el problema era la detección del MIME Type, porque la hace según el que hay pre-guardado en la base de datos de WordPress de cada Media.

Idea de plugin

¿Cómo corregirlo? Pues, la única cosa era que el sistema fuera fichero a fichero, detectando el tipo y sustituyendo el de la base de datos… La primera pensada ha sido hacer un script en PHP que lo hiciera a lo bruto, pero después me ha venido la inspiración: es un proceso bulk, puedo aprovechar cosas de WordPress que ya vienen… así que ¿por qué no hacerlo con WP-CLI?

Nuevo plugin disponible

Y eso es lo que ha salido con Fix Media MIME Types (CLI only), que ahora mismo está solo en GitHub como código, aunque ya he pedido subirlo al repositorio oficial de WordPress. Puedes ver aquí las versiones lanzadas.

Una vez instalado y activado, se debe ejecutar con WP-CLI lo siguiente:

wp fix-mime run

Esto muestra por pantalla algo como:

Found 2 attachments. Starting the process...

Attachment ID 1, File: example1.avif, Current MIME: image/webp, Detected MIME: image/avif
MIME updated from "image/webp" to "image/avif".

Attachment ID 2, File: example2.webp, Current MIME: image/webp, Detected MIME: image/webp
No changes needed.

Success: Process complete. All MIME types have been verified/updated.

Ahora que todos los MIME Types están en su sistema correcto, el plugin Plus WebP or AVIF ya funciona correctamente y procesa todas las imágenes y las sustituye.

Comments

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *