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

如何彻底移除Astra主题+Elementor中WooCommerce重复商品标题?

解决Astra+Elementor环境下WooCommerce商品列表重复标题问题

你遇到的重复标题问题,大概率是因为Astra主题重写了WooCommerce的商品标题钩子,或者Elementor的商品模块额外输出了标题,导致默认的remove_action代码失效。以下是针对性的解决方案:

1. 移除Astra主题自定义的商品标题钩子

Astra主题没有使用WooCommerce默认的woocommerce_loop_product_title函数,而是替换成了自己的astra_woocommerce_shop_loop_item_title。用下面的代码替换你之前的尝试:

add_action( 'init', 'remove_astra_duplicate_product_title' );
function remove_astra_duplicate_product_title() {
    // 移除Astra主题输出的商品标题
    remove_action( 'woocommerce_shop_loop_item_title', 'astra_woocommerce_shop_loop_item_title', 10 );
    // 若仍有重复,同时移除WooCommerce默认标题(根据实际情况选择)
    // remove_action( 'woocommerce_shop_loop_item_title', 'woocommerce_loop_product_title', 10 );
}

将代码添加到子主题的functions.php中,或者使用代码片段插件(如Code Snippets)执行,避免直接修改父主题导致更新丢失。

2. 检查Elementor商品模块的设置

如果你是用Elementor的WooCommerce商品列表组件搭建的页面,可能是组件本身默认开启了标题显示,同时主题也输出了标题:

  • 编辑目标页面,找到Elementor的商品列表模块
  • 进入模块的内容设置面板,找到“显示标题”选项,取消勾选
  • 保存更新后刷新页面,重复标题应该会消失

3. 钩子优先级调试

如果上述方法无效,可能是钩子的优先级被修改。尝试在wp_loaded钩子中执行移除操作(这个钩子会在所有主题和插件加载完成后触发):

add_action( 'wp_loaded', 'remove_duplicate_product_title_wp_loaded' );
function remove_duplicate_product_title_wp_loaded() {
    remove_action( 'woocommerce_shop_loop_item_title', 'astra_woocommerce_shop_loop_item_title', 10 );
    remove_action( 'woocommerce_shop_loop_item_title', 'woocommerce_loop_product_title', 10 );
}

4. 修改WooCommerce模板文件(终极方案)

如果以上方法都无效,说明主题可能直接在模板文件中硬编码了标题:

  1. 复制WooCommerce的content-product.php文件(路径:wp-content/plugins/woocommerce/templates/content-product.php)
  2. 将复制的文件粘贴到子主题的woocommerce文件夹中(如果没有该文件夹,新建一个)
  3. 打开子主题中的content-product.php,找到包含woocommerce-loop-product__title的标题代码块,直接删除该部分
  4. 保存文件后刷新页面即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 17:40:44