在 WooCommerce 存档页面上悬停时切换产品图像

新手上路,请多包涵

有没有办法(可能通过functions.php)在woocommerce商店(存档页面)中使用产品的第一个附加图库图像来更改产品图像?我找不到如何针对两者。我想它一定是这样的:

 add_action( 'woocommerce_shop_loop_item', 'change_image_on_hover', 10 );
function change_image_on_hover() {
     $product->get_gallery_image_ids();
     print 'woocommerce_gallery_image';
}

在此处输入图像描述

原文由 Krystian 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 679
2 个回答

假设您的安装是某种标准的 WooC 安装,我认为您想要做的是利用循环项目操作挂钩来添加所需的悬停图像。

 add_action( 'woocommerce_before_shop_loop_item_title', 'add_on_hover_shop_loop_image' ) ;

function add_on_hover_shop_loop_image() {

    $image_id = wc_get_product()->get_gallery_image_ids()[1] ;

    if ( $image_id ) {

        echo wp_get_attachment_image( $image_id ) ;

    } else {  //assuming not all products have galleries set

        echo wp_get_attachment_image( wc_get_product()->get_image_id() ) ;

    }

}

初步 CSS:

 /* CUSTOM ON-HOVER IMAGE */
.woocommerce ul.products li.product a img {
    /* FORMAT ALL IMAGES TO FILL EQUIVALENT SPACE,
    to remove jitter on replacement */
    height: 150px;
    width: 150px;
    object-fit: cover;
    padding: 0;
    margin: 0 auto;
}
.woocommerce ul.products li.product a img:nth-of-type(2) {
    display: none;
}
.woocommerce ul.products li.product a:hover img:nth-of-type(2) {
    display: block
}
.woocommerce ul.products li.product a:hover img:nth-of-type(1) {
    display: none;
}

以上将获得您想要的一种商店档案显示,以实现简单的替换,但您可能需要或想要为您的网站定制许多细节。例如,150x150px 可能不适合您的主题。或者你可能决定你需要用不同的集合完全替换默认图像,为了获得特定的过渡效果,或者为了与你网站上使用的其他效果保持一致,你需要一种不同的 CSS 方法,并且可能到 javascript。

原文由 CK MacLeod 发布,翻译遵循 CC BY-SA 4.0 许可协议

使用它,您将获得产品的全尺寸图像

add_action(’woocommerce_before_shop_loop_item_title’,’add_on_hover_shop_loop_image’);

功能 add_on_hover_shop_loop_image() {

 $image_id = wc_get_product()->get_gallery_image_ids()[1] ;
$img_size = wc_get_image_size( $image_id, 'full' );

if ( $image_id ) {

    echo wp_get_attachment_image( $image_id, 'full' ) ;

} else {  //assuming not all products have galleries set

    echo wp_get_attachment_image( wc_get_product()->get_image_id() ) ;

}

}

原文由 Ankit Tiwari 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题