Regenera tus Thumbnails de WordPress con WP-CLI y en batch

Trabajando para un proyecto muy grande me surgió la necesidad de regenerar las imágenes de WordPress en producción. Es sabido que esto es una tarea muy dura ya que consume mucho recursos de procesador para eliminar y crear nuevamente todas las imágenes. Es ahí donde empecé a buscar posibles soluciones de regeneración por batch:

  • Utilizar un plugin que regenere imágenes en batch: Existen pero descarté esta idea porque son de pago y además consumen más recursos ya que hay que hacer todo desde el administrador de WordPress.
  • Utilizar WP-CLI: Esta es la opción más adecuada para la tarea aunque no tiene ninguna opción para regenerar cierto conjunto de imágenes, esperar un tiempo y volver a regenerar imágenes.

Lancé la pregunta a Twitter buscando que algún programador de la Comunidad se haya topado con esta necesidad. Y al igual que las Meetups “Si no existe, tienes que crearla tú“. Así que me puse manos a la obra y creé el proceso bash para regenerar imágenes de WordPress sin sobrecargar el procesador.

https://twitter.com/maugelves/status/1005049589261570049

El código

El proceso se pone en marcha cuando ejecutamos la siguiente línea desde nuestra terminal:

./wp-media-regenerate-batch.sh  <options>

Opciones

-u: Nombre de usuario la base de datos
-d: Nombre de la base de datos
-p: Contraseña de la base de datos
-s: <opcional> Nombre del tamaño de la imagen a regenerar (large, medium-large, medium, thumbnail o uno personalizado)
-e: <opcional> Argumento para indicar cada cuantos ficheros regenerados se debe realizar una pausa. Por defecto es cada 10 ficheros regenerados.
-t: <opcional> Argumento para especificar la cantidad de segundos que debe esperar el proceso antes de recomenzar. Por defecto son 10 segundos.

Ejemplo de uso:

./wp-media-regenerate-batch.sh -d mibasededato -u root -p root -s large
wp media regenerate batch ejemplo
Ejemplo del comando ejecutándose…

Código fuente


¿Qué te pareció el artículo?
No molaPobreMolaMuy bueno¡Excelente! (Ninguna valoración todavía)
Cargando…
Mauricio Gelves
Mauricio Gelves es Lic. en Informática y trabaja como Consultor Web Freelance con su marca personal MauGelves. Se especializó en WordPress para ofrecer soluciones personalizadas y rentables a medianas y largas empresas. Es Nómade Digital desde el año 2015, actividad que combina sus dos principales pasiones: la informática y los viajes, y refleja sus experiencias a través de sus hobbies audiovisuales en Instagram y YouTube.

3 thoughts on “Regenera tus Thumbnails de WordPress con WP-CLI y en batch”

  1. Grande. Se me ocurre que se podría hacer con un script más sencillo o incluso manualmente usando este código:
    ”’
    # Re-generate all thumbnails that have IDs between 1000 and 2000.
    $ seq 1000 2000 | xargs wp media regenerate
    Found 4 images to regenerate.
    1/4 Regenerated thumbnails for “Vertical Featured Image” (ID 1027).
    2/4 Regenerated thumbnails for “Horizontal Featured Image” (ID 1022).
    3/4 Regenerated thumbnails for “Unicorn Wallpaper” (ID 1045).
    4/4 Regenerated thumbnails for “I Am Worth Loving Wallpaper” (ID 1023).
    Success: Regenerated 4 of 4 images.
    ”’
    Sacado de https://developer.wordpress.org/cli/commands/media/regenerate/

    1. No puedes hacer eso por los siguientes motivos:
      – Primero porque propones un proceso manual y yo estoy buscando una solución para cientos de miles de imágenes. Tiene que ser automatizado sí o sí.
      – Con ese comando estás dando por echo que entre los ID’s 1000 y 2000 son todas imágenes cuando no es así. Puede haber ID’s de post, pages, CPT’s, etc etc. Esto genera una pérdida de tiempo y de recursos muy grande.
      – El comando seq no es más optimo, ejecuta uno por uno (ID por ID) el comando ‘wp media regenerate’

      ¿Te convenzo? 😛
      Un abrazo Ángel!

Deja un comentario

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