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

ACF嵌套Repeater取值求助:无法获取Group内部Repeater字段值

解决ACF嵌套Repeater(含Group字段)的字段获取问题

你的代码存在两个关键问题导致facts字段无法输出:

  1. 语法错误:$info = get_sub_field('info); 缺少闭合单引号,应修正为 $info = get_sub_field('info');
  2. 逻辑错误:把Group类型的info字段当作Repeater字段用have_rows循环,Group字段是一次性返回所有子字段的集合,不需要也不能这样循环。

以下是两种修正后的可行代码:

方式一:沿用ACF的have_rows循环风格

<div>
    <?php while( have_rows('partner')): the_row();
        // 获取info组的所有字段
        $info = get_sub_field('info');

        // 输出info组内的其他字段(示例)
        if ($info['logo']) {
            echo wp_get_attachment_image($info['logo'], 'medium');
        }
        echo '<h3>' . $info['headline'] . '</h3>';
        echo '<p>' . $info['subline'] . '</p>';
        echo '<div>' . $info['description'] . '</div>';

        // 循环输出facts字段
        if (have_rows('facts', 'info')):
            while (have_rows('facts', 'info')): the_row();
                $fact = get_sub_field('fact');
                echo '<li>' . $fact . '</li>';
            endwhile;
        endif;
    endwhile; ?>
</div>

方式二:直接遍历Group字段的数组(更简洁)

<div>
    <?php while( have_rows('partner')): the_row();
        // 获取info组的所有字段
        $info = get_sub_field('info');

        // 输出info组内的其他字段(示例)
        if ($info['logo']) {
            echo wp_get_attachment_image($info['logo'], 'medium');
        }
        echo '<h3>' . $info['headline'] . '</h3>';
        echo '<p>' . $info['subline'] . '</p>';
        echo '<div>' . $info['description'] . '</div>';

        // 直接遍历facts数组输出
        if (isset($info['facts']) && is_array($info['facts'])) {
            foreach ($info['facts'] as $fact_item) {
                echo '<li>' . $fact_item['fact'] . '</li>';
            }
        }
    endwhile; ?>
</div>

两种方式都能正确输出facts里的fact字段,你可以根据自己的习惯选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 09:35:56