如何获取Advanced Custom Fields(ACF)中子分组的字段数据
问题核心原因
如果你的front-page.php是站点后台设置的静态首页,ACF默认无法自动匹配到该静态页的ID,需要手动指定定位字段,另外group类型属于单组关联结构,也可以不用循环直接读取。
正确调用写法
写法1:保留原有循环逻辑(修复版)
<?php // 获取静态首页的专属ID $home_page_id = get_option('page_on_front'); if (have_rows('left-result', $home_page_id)) : ?> <li> <?php while (have_rows('left-result', $home_page_id)) : the_row(); $t_ttl = get_sub_field('left-title'); ?> <h1><?php echo esc_html($t_ttl); ?></h1> <?php endwhile; ?> </li> <?php endif; ?>
写法2:简化写法(group类型无需循环)
group字段返回的是关联数组,直接读取对应子字段键值即可,代码更简洁:
<?php $home_page_id = get_option('page_on_front'); $left_result = get_field('left-result', $home_page_id); if ($left_result && isset($left_result['left-title'])) : ?> <li> <h1><?php echo esc_html($left_result['left-title']); ?></h1> </li> <?php endif; ?>
特殊情况说明
如果你该字段是绑定到ACF选项页而非静态页条目,把上述代码里的$home_page_id替换为'option'即可生效。
内容的提问来源于stack exchange,提问作者Harry
相关产品推荐
相关产品推荐

