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

如何在WooCommerce产品描述与附加信息标签中显示ACF重复器内容

排查ACF重复器在WooCommerce标签模板不显示的问题

以下是几个核心排查方向和解决方法:

  • 确认当前上下文的产品ID正确性
    WooCommerce标签模板的上下文可能存在对象偏差,务必确保用当前产品ID调用ACF字段。可以先在模板中添加测试代码验证:

    echo get_the_ID(); // 输出当前页面ID,核对是否为目标产品的ID
    

    调用重复器时明确传入产品ID:

    if( have_rows('你的重复器字段名', get_the_ID()) ):
        while( have_rows('你的重复器字段名', get_the_ID()) ): the_row();
            echo get_sub_field('文本子字段名');
        endwhile;
    endif;
    
  • 检查ACF字段配置

    • 确认重复器字段的位置规则:必须设置为「产品」类型,且匹配目标产品的分类、状态等条件,避免字段未应用到对应产品。
    • 核对子字段名称拼写:ACF调用严格区分大小写和下划线,比如子字段product_detail不能写成Product_Detail。
  • 验证模板修改的正确性

    • 如果你直接修改WooCommerce模板,要确保是在主题的woocommerce子目录下操作(比如your-theme/woocommerce/single-product/tabs/description.php),不要修改插件目录文件,否则插件更新会覆盖改动。
    • 推荐用钩子替代直接改模板,更安全且易维护,比如针对标签末尾的钩子:
      // 追加到描述标签底部
      add_action('woocommerce_product_description_tab_end', 'display_acf_repeater_desc');
      function display_acf_repeater_desc() {
          if( have_rows('你的重复器字段名', get_the_ID()) ):
              echo '<div class="acf-repeater-wrap">';
              while( have_rows('你的重复器字段名', get_the_ID()) ): the_row();
                  echo '<p>' . get_sub_field('文本子字段名') . '</p>';
              endwhile;
              echo '</div>';
          endif;
      }
      
      // 追加到附加信息标签底部
      add_action('woocommerce_product_additional_information_tab_end', 'display_acf_repeater_info');
      function display_acf_repeater_info() {
          // 重复上述重复器调用逻辑即可
      }
      

    将这段代码放到主题的functions.php中测试。

  • 确认产品已填写重复器内容
    检查目标产品的编辑页面,确保ACF重复器字段已添加至少一行内容,且文本子字段有值——空内容自然会导致容器为空。

  • 排除冲突问题
    暂时禁用其他插件(尤其是缓存、ACF扩展类插件),切换到WooCommerce默认主题Storefront,测试代码是否生效,排查是否是第三方代码干扰了ACF的查询逻辑。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 12:24:47