Как получить первое изображение из галереи товара WooCommerce в цикле

8 мар. 2016 г., 04:27:49
Просмотры: 21.9K
Голосов: 4

Я хочу отобразить товар с изображением, и когда посетитель наводит курсор на это изображение, оно должно меняться на первое изображение из галереи товара. Я использую этот код для отображения галереи изображений, но он показывает все изображения из галереи товара. Мне нужно только 1 изображение.

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

Кто-нибудь знает, как решить эту проблему? Буду очень признателен за любые идеи.

С уважением

0
Все ответы на вопрос 2
3

Наряду с миниатюрой товара (я предполагаю, что она у вас есть), вам понадобится список (массив) изображений товара — WooCommerce предоставляет такие методы, например $product->get_gallery_attachment_ids().

Вы можете взять первый ID из массива и использовать его для получения отдельного изображения с помощью wp_get_attachment_image() или wp_get_attachment_url() и т.д., а затем использовать его в качестве альтернативного источника для основного (миниатюрного) изображения.

Кстати, вызов woocommerce_product_thumbnails выводит разметку, которую, вероятно, вы не захотите использовать. Вам нужно либо отбросить её, либо отключить функции, связанные с ней, чтобы получить желаемый вывод.

8 мар. 2016 г. 07:04:25
Комментарии

Моя проблема в том, что я не знаю, как получить первое изображение из галереи. Я использую http://stackoverflow.com/questions/29778288/get-woocommerce-product-gallery-image-caption, но все равно получаю все изображения из галереи.

Mailmulah Mailmulah
8 мар. 2016 г. 14:15:57

Вместо использования foreach в этом коде, вам нужно просто получить первый URL с помощью wp_get_attachment_url( $attachment_ids[0], 'large').

Isaac Lubow Isaac Lubow
10 мар. 2016 г. 02:46:53

Спасибо. С небольшой модификацией код работает отлично.

Mailmulah Mailmulah
10 мар. 2016 г. 18:43:11
0

Обновление 2018: Теперь следует использовать get_gallery_image_ids(); вместо старого метода. Затем примените wp_get_attachment_url() с первым ID из возвращаемого массива.

$product->get_gallery_image_ids();
18 дек. 2018 г. 20:50:17