从 Woocommerce 中的数组中删除图像
Removing image from array in Woocommerce
我正在建立一个基于 Woocommerce 的网上商店。
在单个产品页面中,我删除了特色图片(通过删除调用它的代码),并使用以下代码将其替换为图库中的第一张大尺寸图片:
<?php
$imgid = $product->get_gallery_attachment_ids();
?>
<a href="<?php echo wp_get_attachment_url( $imgid[0] ); ?>"
class="woocommerce-main-image zoom first"
rel="lightbox[product-gallery]">
<img src="<?php echo wp_get_attachment_url( $imgid[0] ); ?>" alt="">
</a>
紧接着,缩略图被称为:
<?php do_action( 'woocommerce_product_thumbnails' ); ?>
由于数组中的第一张图片已经以大尺寸显示,我已经设法将其从缩略图列表中删除,如下所示:
<script>
jQuery('.thumbnails.columns-3 a:first-child').hide()
</script>
我现在唯一的问题是,第一张图片仍会在灯箱中出现两次,因为它仍会在图库中出现两次。
我怎样才能将它从灯箱的数组中删除,而不是从画廊的数组中删除?
我尝试了以下方法,但出现错误:
// define the woocommerce_product_thumbnails callback
function action_woocommerce_product_thumbnails( $woocommerce_show_product_thumbnails, $number )
{
$array = $product->get_gallery_attachment_ids();
$size = count($array);
$result = array();
for ($i = 0; $i < $size; $i += 2) {
$result[] = $array[$i];
}
var_dump($result);
}
// add the action
add_action( 'woocommerce_product_thumbnails', 'action_woocommerce_product_thumbnails', 10, 2 );
// add the action
add_action( 'woocommerce_product_thumbnails', 'action_woocommerce_product_thumbnails', 10, 2 );
关于下一步尝试的任何提示?
这并没有解决这里的确切问题(问题的改进版本提供了两个解决方案:),但为了将来参考,这里有一个如何过滤 woocommerce_product_gallery_attachment_ids
add_filter( 'woocommerce_product_gallery_attachment_ids', 'so_31818331_filter_gallery', 10, 2 );
function so_31818331_filter_gallery( $ids, $product ){
// remove image attachment id=99 from all galleries
if( in_array( 99, $ids ) ){
unset( $ids['99'] );
}
return $ids;
}
我正在建立一个基于 Woocommerce 的网上商店。 在单个产品页面中,我删除了特色图片(通过删除调用它的代码),并使用以下代码将其替换为图库中的第一张大尺寸图片:
<?php
$imgid = $product->get_gallery_attachment_ids();
?>
<a href="<?php echo wp_get_attachment_url( $imgid[0] ); ?>"
class="woocommerce-main-image zoom first"
rel="lightbox[product-gallery]">
<img src="<?php echo wp_get_attachment_url( $imgid[0] ); ?>" alt="">
</a>
紧接着,缩略图被称为:
<?php do_action( 'woocommerce_product_thumbnails' ); ?>
由于数组中的第一张图片已经以大尺寸显示,我已经设法将其从缩略图列表中删除,如下所示:
<script>
jQuery('.thumbnails.columns-3 a:first-child').hide()
</script>
我现在唯一的问题是,第一张图片仍会在灯箱中出现两次,因为它仍会在图库中出现两次。
我怎样才能将它从灯箱的数组中删除,而不是从画廊的数组中删除?
我尝试了以下方法,但出现错误:
// define the woocommerce_product_thumbnails callback
function action_woocommerce_product_thumbnails( $woocommerce_show_product_thumbnails, $number )
{
$array = $product->get_gallery_attachment_ids();
$size = count($array);
$result = array();
for ($i = 0; $i < $size; $i += 2) {
$result[] = $array[$i];
}
var_dump($result);
}
// add the action
add_action( 'woocommerce_product_thumbnails', 'action_woocommerce_product_thumbnails', 10, 2 );
// add the action
add_action( 'woocommerce_product_thumbnails', 'action_woocommerce_product_thumbnails', 10, 2 );
关于下一步尝试的任何提示?
这并没有解决这里的确切问题(问题的改进版本提供了两个解决方案:woocommerce_product_gallery_attachment_ids
add_filter( 'woocommerce_product_gallery_attachment_ids', 'so_31818331_filter_gallery', 10, 2 );
function so_31818331_filter_gallery( $ids, $product ){
// remove image attachment id=99 from all galleries
if( in_array( 99, $ids ) ){
unset( $ids['99'] );
}
return $ids;
}