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

如何在WooCommerce中基于产品ID或分类执行remove_action移除钩子

WooCommerce指定条件移除产品标题钩子解决方案

原代码失效原因

你编写的条件判断代码直接在全局作用域执行时,WordPress主查询尚未完成初始化,is_single这类页面条件标签无法正常识别当前页面属性,判断逻辑不会触发,因此移除钩子的操作无效。

方案1:针对指定产品ID移除标题钩子

将移除逻辑挂载到template_redirect钩子上执行,此时所有页面条件标签已可用,可正常判断当前产品是否为目标ID:

add_action( 'template_redirect', 'remove_specific_product_title' );
function remove_specific_product_title() {
    // 括号内替换为实际目标产品ID,多个ID可传入数组,示例:is_product( array(123, 456, 789) )
    if ( is_product( 123 ) ) {
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 );
    }
}

方案2:针对指定产品分类下的所有产品移除标题钩子

通过has_term判断当前产品是否归属目标分类,产品分类对应的分类法为product_cat:

add_action( 'template_redirect', 'remove_category_product_title' );
function remove_category_product_title() {
    // 第一个参数替换为目标分类的ID、别名或名称,多个分类可传入数组
    if ( is_product() && has_term( '目标分类别名', 'product_cat' ) ) {
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 );
    }
}

注意事项

  • remove_action的第三个参数必须和原钩子注册时的优先级完全一致,此处原钩子优先级为5,不可修改
  • 代码可添加到当前使用主题的functions.php文件末尾,或自定义功能插件中,修改前建议备份站点文件避免语法错误导致站点异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 23:15:05