WooCommerce 自动将产品图片添加到图库(如果图库为空)
WooCommerce add product image to gallery automatically (if gallery is empty)
在 WooCommerce 中,产品可以有产品图片(单张图片)和产品图库(多张图片)。
当我 select 产品图片时,我希望它也自动添加到产品图库中。
一件重要的事情:它应该检查产品图片是否已经在图库中(这样图库就不会有重复的图片)。
是否有 php 函数?
(我怀疑 these lines of code 可能有助于创建函数)
我通过将产品图片添加到模板本身的图库数组中解决了这个问题。
<?php
global $product;
$attachment_ids = $product->get_gallery_image_ids();
$product_image_id = $product->get_image_id();
// Add product image to gallery if its not there.
// (This will prevent empty galleries, and also prevent duplicate images)
if (!in_array($product_image_id, $attachment_ids)) {
array_unshift($attachment_ids, $product_image_id);
}
foreach ($attachment_ids as $attachment_id) :
$attachment_full_url = wp_get_attachment_image_src($attachment_id, 'full')[0];
?>
<div class="swiper-slide"><a href="<?php echo $attachment_full_url; ?>"><?php echo wp_get_attachment_image($attachment_id, 'woocommerce_single'); ?></a></div>
<?php
endforeach;
?>
但是,更好的解决方案是 实际上 将产品图片添加到图库本身,而不是让模板代码这样做。
在 WooCommerce 中,产品可以有产品图片(单张图片)和产品图库(多张图片)。
当我 select 产品图片时,我希望它也自动添加到产品图库中。
一件重要的事情:它应该检查产品图片是否已经在图库中(这样图库就不会有重复的图片)。
是否有 php 函数?
(我怀疑 these lines of code 可能有助于创建函数)
我通过将产品图片添加到模板本身的图库数组中解决了这个问题。
<?php
global $product;
$attachment_ids = $product->get_gallery_image_ids();
$product_image_id = $product->get_image_id();
// Add product image to gallery if its not there.
// (This will prevent empty galleries, and also prevent duplicate images)
if (!in_array($product_image_id, $attachment_ids)) {
array_unshift($attachment_ids, $product_image_id);
}
foreach ($attachment_ids as $attachment_id) :
$attachment_full_url = wp_get_attachment_image_src($attachment_id, 'full')[0];
?>
<div class="swiper-slide"><a href="<?php echo $attachment_full_url; ?>"><?php echo wp_get_attachment_image($attachment_id, 'woocommerce_single'); ?></a></div>
<?php
endforeach;
?>
但是,更好的解决方案是 实际上 将产品图片添加到图库本身,而不是让模板代码这样做。