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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 22:10:34