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

WooCommerce如何仅在特定分类页面显示加入购物车按钮

WooCommerce 商品列表加购按钮自定义修改方案

直接替换你之前添加在主题functions.php文件中的原有代码即可,不需要额外安装插件。

核心实现逻辑

通过判断当前页面类型、循环内的商品类型,控制加购按钮的输出规则:

  • 商店主页面的可变产品,不输出「选择选项」按钮
  • 仅在商品分类页面,且当前商品为简单产品时,输出原生的「加入购物车」按钮
  • 其余场景默认不输出按钮,避免可变产品跳转选规格的按钮显示在不符合预期的位置

可直接使用的代码

把原有那行add_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 20 );代码删除,替换为以下代码:

/**
 * 自定义商品循环页加购按钮显示规则
 */
add_action( 'woocommerce_after_shop_loop_item', 'custom_shop_loop_add_to_cart', 20 );
function custom_shop_loop_add_to_cart() {
    global $product;

    // 商店首页的可变产品直接不输出按钮
    if ( is_shop() && $product->is_type( 'variable' ) ) {
        return;
    }

    // 商品分类页的简单产品,输出原生加购按钮
    // 如果需要限定仅特定分类显示,把is_product_category()改成is_product_category( array( '你的分类别名', '分类ID' ) )即可
    if ( is_product_category() && $product->is_type( 'simple' ) ) {
        woocommerce_template_loop_add_to_cart();
        return;
    }

    // 其余场景不输出按钮
    return;
}

调整说明

  • 如果你需要指定只有某几个商品分类显示加购按钮,只需要修改is_product_category()内的参数,传入对应分类的别名、ID或者名称数组即可
  • 如果你需要商店主页面的简单产品也显示加购按钮,在第一个判断块下方补充以下代码即可:
// 商店首页简单产品显示加购按钮
if ( is_shop() && $product->is_type( 'simple' ) ) {
    woocommerce_template_loop_add_to_cart();
    return;
}
  • 修改代码前请提前备份functions.php文件,避免语法错误导致站点无法访问

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 15:51:19