Programación Web

Cómo modificar el tamaño de las imágenes de la galería en Woocommerce

Hoy he tenido que modificar el tamaño de la galería de producto que viene por defecto en Woocommerce, en concreto para que en las páginas de producto la foto no se apreciase pixelada.

El problema

El tema «Onea» permite una plantilla para las páginas de producto de Woocommerce en la cuál las imágenes de la galería de producto se apilan debajo de la imagen principal.

En la captura podemos ver la imagen principal y justo debajo la primera de la galería, si ves la imagen al 100% notarás un pixelado notable en la imagen de abajo.

Imagen destacada vs Primera imagen de la galería

Como habrás notado, se trata de joyas, sector en el que el diseño lo es todo, y este defecto no era tolerable.

Si vamos al inspector de elementos veremos que la imagen que se está pintando ahí tiene 300px de ancho pero se ajusta al 100% de un elemento de más de 600px, de ahí la distorsión. Veamos como solucionarlo.

Curiosamente, el autor del tema no tuvo esto en cuenta cuando creó la plantilla de producto.

La solución

A mi me ha llevado varias horas pelearme con este problema hasta que he visto dónde se «pintaba» el tamaño de la foto del thumbnail de la galería de fotos en la página de producto de Woocommerce, pero te dejo una solución que puedes aplicar en un minuto.

Resulta que en el archivo includes/wc-template-functions.php dentro del core de Woocommerce hay una función llamada wc_get_gallery_image_html que es la que crea estos elementos html. En ella se llama al filtro woocommerce_gallery_image_size para definir el tamaño que tendrá la «miniatura» de la imagen de la galería.

Por defecto Woocommerce indica que tome el tamaño «thumbnail» y eso está bien para la mayoría de los casos, pero no para el nuestro. Por tanto debemos engancharnos a ese filtro y pasarle el tamaño que queramos. Se hace poniendo este código en el functions.php de tu theme si es un child theme, o en un plugin.

function tu_funcion( ) {
    $size = apply_filters( 'woocommerce_gallery_medium_size', apply_filters( 'woocommerce_gallery_medium_size', 'full' ) );
    return $size;
}
add_filter( 'woocommerce_gallery_image_size', 'tu_funcion' );

Como ves en el código le estamos diciendo a WordPress a través de este filtro que tome la imagen de tamaño medio para pintarla en este elemento.

Y funciona como un tiro.

Veamos el resultado final:

La imagen ya modificada

Como puedes ver ahora las miniaturas de la galería tienen ya una apariencia correcta.

Espero haberte ayudado, si ha sido así, cuéntamelo en un comentario.

fruiz

Ver comentarios

Share
Publicado por
fruiz

Recent Posts

Dos años después del castigo a las secciones de cupones: quién cortó y quién sigue igual

En mayo de 2024 Google empezó a desindexar secciones enteras alojadas dentro de medios de…

57 años atrás

Un aparato sin pantalla: ¿dónde pones los diez resultados azules?

OpenAI prepara un altavoz sin pantalla para 2027. Sin pantalla no hay diez enlaces: hay…

57 años atrás

Dos años de INP: por qué tantas webs siguen suspendiendo (y cómo medirlo sin Lighthouse)

INP sustituyó a FID en marzo de 2024 y sigue siendo el Core Web Vital…

57 años atrás

AI Overviews y CTR: lo que dicen los estudios y lo que dice tu Search Console

Pew, Ahrefs y Similarweb miden caídas fuertes de clics cuando aparece un resumen de IA;…

57 años atrás

El growth hacker ha muerto tres veces, y la tercera nos toca a los que hacemos SEO

De Craigslist a las respuestas de ChatGPT: qué buscaban de verdad los primeros growth hackers,…

57 años atrás

El que te manda el pull request puede no ser una persona

Un modelo creó identidades falsas para que el responsable de un proyecto de código abierto…

57 años atrás