You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整WooCommerce商品归档页的商品跳转链接范围?

调整WooCommerce店铺页面商品链接的包裹范围

嘿,这个需求其实很容易实现,核心思路就是移除默认的全局商品链接钩子,然后手动把链接精准放在图片和标题的前后。咱们一步步来:

步骤1:移除默认的链接动作

WooCommerce默认通过两个钩子控制商品链接的打开和关闭:

  • woocommerce_before_shop_loop_item 钩子上的 woocommerce_template_loop_product_link_open(优先级10)负责打开链接
  • woocommerce_after_shop_loop_item 钩子上的 woocommerce_template_loop_product_link_close(优先级5)负责关闭链接

这两个钩子默认把整个商品区块(图、名称、SKU、价格)都包在了链接里,所以我们先把它们移除。把下面的代码添加到你的子主题functions.php里(或者用自定义代码插件,别直接改父主题,避免更新丢失):

// 移除默认的商品链接打开/关闭钩子
remove_action( 'woocommerce_before_shop_loop_item', 'woocommerce_template_loop_product_link_open', 10 );
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_product_link_close', 5 );

步骤2:手动添加链接到指定位置

接下来,我们要把链接只包裹图片和商品名称:

  • 在商品图片之前打开链接
  • 在商品名称之后关闭链接

添加下面的代码到同一个functions.php文件里:

// 自定义商品链接打开函数,放在图片之前
function custom_woocommerce_loop_product_link_open() {
    global $product;
    $product_link = apply_filters( 'woocommerce_loop_product_link', get_the_permalink(), $product );
    echo '<a href="' . esc_url( $product_link ) . '" class="woocommerce-LoopProduct-link woocommerce-loop-product__link">';
}
// 优先级设为5,确保在图片(优先级10)之前执行
add_action( 'woocommerce_before_shop_loop_item_title', 'custom_woocommerce_loop_product_link_open', 5 );

// 自定义商品链接关闭函数,放在标题之后
function custom_woocommerce_loop_product_link_close() {
    echo '</a>';
}
// 优先级设为15,确保在标题(优先级10)之后执行
add_action( 'woocommerce_shop_loop_item_title', 'custom_woocommerce_loop_product_link_close', 15 );

为什么这样有效?

  • 我们把链接打开动作放在了woocommerce_before_shop_loop_item_title钩子(负责输出商品图片和售罄标签)的最前面,所以链接会包裹住图片
  • 链接关闭动作放在了woocommerce_shop_loop_item_title钩子(输出商品名称)的后面,这样标题也被包裹在链接里
  • 而SKU、价格、评分这些内容都在woocommerce_after_shop_loop_item_title钩子里,完全在链接范围之外,点击它们就不会跳转到商品详情页了

这样调整后,就完美实现了你要的效果:只有商品图片和名称可以点击跳转,SKU和价格不会触发跳转。

内容的提问来源于stack exchange,提问作者Reece

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:43:13