WooCommerce产品分类ACF Repeater数据无法显示问题求助
解决WooCommerce分类页ACF Repeater字段不显示数据的问题
逐步排查与修复方案
1. 验证当前页面的查询对象
先确认你是否在正确的产品分类归档页面,以及get_queried_object()是否获取到了有效的分类对象。添加调试代码查看:
<?php $queried_object = get_queried_object(); // 调试:输出当前查询对象详情,确认是否为WP_Term类型 var_dump($queried_object); ?>
如果输出不是WP_Term,说明你不在分类归档页,需要手动指定分类ID进行测试。
2. 检查ACF字段配置
- 确认
category_image这个Repeater字段的位置规则设置为:Taxonomy → Product Category,且规则覆盖了你当前使用的分类。 - 核对子字段
image和description的字段名是否完全匹配(ACF字段名区分大小写)。
3. 修正ACF字段调用逻辑
针对术语调用ACF字段,直接传入WP_Term对象比单独传term_id更可靠,ACF会自动识别术语类型。修改后的代码如下:
<?php $queried_object = get_queried_object(); // 直接传入分类对象作为参数 if(have_rows('category_image', $queried_object)): while(have_rows('category_image', $queried_object)): the_row(); $gallery_image = get_sub_field('image'); $description = get_sub_field('description'); ?> <p><?php echo $description; ?></p> <a href="<?php echo esc_url($gallery_image['url']); ?>" data-lg-size="1024-800"> <img alt="<?php echo esc_attr($gallery_image['alt'] ?: 'img2'); ?>" src="<?php echo esc_url($gallery_image['url']); ?>" /> </a> <?php endwhile; else: ?> <h6 class="text-center">No thing found from the backend </h6> <?php endif; ?>
- 加入
esc_url()和esc_attr()做安全转义,符合WordPress开发规范。 - 优先使用图片自带的alt属性,没有时才用默认值。
4. 确认分类数据已正确保存
进入后台产品分类编辑页,检查当前分类下的category_image字段是否确实添加了数据,并且点击过保存按钮。
5. 清除缓存
如果以上步骤都没问题,可能是缓存导致数据未更新:
- 清除WordPress插件缓存、服务器缓存。
- 重新保存一次ACF字段组的设置,确保字段配置生效。
内容的提问来源于stack exchange,提问作者Farhan Shah
相关产品推荐
相关产品推荐

