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

WooCommerce仅首页移除Add To Card按钮的代码修改问询

如何在WooCommerce首页移除产品按钮(保留产品单页按钮)

嘿,这个需求其实很容易实现,而且绝对不要直接修改WooCommerce核心文件或者主题的核心模板——这样做会在主题/插件更新时丢失所有修改。推荐用子主题的functions.php文件,或者使用自定义代码插件(比如Code Snippets)来添加代码,下面是两种靠谱的方案:

方法1:通过移除WooCommerce动作钩子(推荐,无样式残留)

WooCommerce的产品按钮都是通过动作钩子挂载的,我们可以先判断当前是否是首页,再移除对应的钩子。代码如下:

add_action( 'wp', 'remove_homepage_product_buttons' );
function remove_homepage_product_buttons() {
    // 同时兼容静态首页和博客首页的判断
    if ( is_front_page() || is_home() ) {
        // 移除简单产品的"添加到购物车"按钮
        remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
        // 移除可变产品/分组产品的选择按钮
        remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
        // 如果你的主题还有其他自定义按钮(比如"快速查看"),可以找到对应的钩子在这里移除
    }
}

代码说明:

  • is_front_page() 匹配你设置的静态首页,is_home() 匹配博客首页(如果你的首页是博客列表)
  • woocommerce_after_shop_loop_item 是产品循环列表(首页产品展示区)的钩子,WooCommerce默认把添加到购物车按钮挂载在这里。

方法2:通过CSS快速隐藏(适合不想写PHP的情况)

如果你更偏好可视化修改,可以添加CSS代码到子主题的style.css,或者WordPress后台「外观-自定义-额外CSS」里:

/* 隐藏首页所有产品按钮 */
.home .woocommerce-loop-add-to-cart-link,
.home .button.product_type_variable,
.home .button.product_type_grouped {
    display: none !important;
}

说明:

  • .home 是WordPress首页的专属body类,通过这个类限定样式只在首页生效,不会影响产品单页的按钮。

另外,你示例里用的Storefront主题完全适配上面两种方法,因为它严格遵循WooCommerce的标准钩子规范。如果遇到自定义主题的特殊按钮,你可以用浏览器开发者工具查看按钮的类名,或者找主题文档对应的钩子来调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:49:12