Cómo obtener la primera imagen de la galería de un producto en WooCommerce en un bucle

8 mar 2016, 04:27:49
Vistas: 21.9K
Votos: 4

Quiero mostrar un producto con una imagen principal y cuando el visitante pase el cursor sobre esa imagen, que cambie a la primera imagen de la galería del producto. Estoy usando este código para mostrar la galería de imágenes, pero muestra todas las imágenes de la galería del producto. Solo quiero mostrar 1 imagen.

<?php do_action( 'woocommerce_product_thumbnails' ); ?>

¿Alguien sabe cómo resolver este problema? Realmente agradezco cualquier idea.

Saludos

0
Todas las respuestas a la pregunta 2
3

Junto con la miniatura del producto (asumo que ya la tienes), lo que necesitas es una lista (array) de las imágenes del producto - WooCommerce tiene métodos para esto, por ejemplo $product->get_gallery_attachment_ids().

Puedes tomar el primer ID del array y usarlo para obtener la imagen individual con wp_get_attachment_image(), o wp_get_attachment_url(), etc., luego usar eso como fuente alternativa para la imagen principal (miniatura).

Por cierto, la llamada woocommerce_product_thumbnails está generando un marcado que probablemente no quieras usar. Necesitarás descartar esto o desenganchar funciones de ella para obtener el resultado que deseas.

8 mar 2016 07:04:25
Comentarios

Mi problema es que no sé cómo obtener la primera imagen de la galería. Estoy usando http://stackoverflow.com/questions/29778288/get-woocommerce-product-gallery-image-caption pero sigo obteniendo todas las imágenes de la galería.

Mailmulah Mailmulah
8 mar 2016 14:15:57

En lugar de usar foreach en ese código, necesitas obtener solo la primera URL como wp_get_attachment_url( $attachment_ids[0], 'large').

Isaac Lubow Isaac Lubow
10 mar 2016 02:46:53

Gracias. Con una pequeña modificación, el código funciona bien.

Mailmulah Mailmulah
10 mar 2016 18:43:11
0

Actualización 2018: Es necesario usar get_gallery_image_ids(); en su lugar. Luego utiliza wp_get_attachment_url() con el primer ID en el array devuelto.

$product->get_gallery_image_ids();
18 dic 2018 20:50:17