从 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;
}