防止产品页面中的可点击图像,禁用产品图像 link

Prevent clickable image in product page, disable product-image link

使用 Woocommerce 和我的 Storefront 子主题,我试图防止在单击单个产品图片时打开一个包含全尺寸图片的新页面。

我希望图片不可点击,这样当用户点击产品页面中的图片时什么也不会发生。

在我的儿童主题 functions.php 中,以下代码可防止在灯箱中缩放和打开图像,但我想完全停用链接。

add_action( 'after_setup_theme', 'remove_hemen_theme_support', 100 );
function remove_hemen_theme_support() {
    remove_theme_support( 'wc-product-gallery-zoom' );
    remove_theme_support( 'wc-product-gallery-lightbox' );
}

我怎样才能做到这一点?

添加这个过滤器,它应该会删除你的超链接

function e12_remove_product_image_link( $html, $post_id ) {
    return preg_replace( "!<(a|/a).*?>!", '', $html );
}
add_filter( 'woocommerce_single_product_image_thumbnail_html', 'e12_remove_product_image_link', 10, 2 );

我是如何用相同的主题做到的。

我创建了一个简单的插件(但你可以使用 functions.php),其中包含覆盖主题所需的功能,我在里面有以下代码:

add_action( 'wp', 'ts_remove_zoom_lightbox_gallery_support', 99 );

function ts_remove_zoom_lightbox_gallery_support() {
     remove_theme_support( 'wc-product-gallery-zoom' ); 
     remove_theme_support( 'wc-product-gallery-lightbox' );
 }

我们函数的区别在于我使用的是“wp”而不是“after_setup_theme”。

试一试,告诉我是否可行。

您可以在您的主题中覆盖模板 woocommerce/single-product/product-thumbnails。php。

它运行:

apply_filters(
    'woocommerce_single_product_image_thumbnail_html',
    sprintf(
      '<a href="%s" class="%s" title="%s" data-rel="prettyPhoto[product-gallery]">%s</a>',
      esc_url( $props['url'] ),
      esc_attr( $image_class ),
      esc_attr( $props['caption'] ),
      wp_get_attachment_image( $attachment_id, apply_filters( 'single_product_small_thumbnail_size', 'shop_thumbnail' ), 0, $props )
    ),
    $attachment_id,
    $post->ID,
    esc_attr( $image_class )
);