WordPress ACF Repeater遍历循环无法返回子字段值问题咨询
问题排查与修复方案
1. 补充指定页面ID读取字段
front-page.php默认的全局文章对象并不会指向你绑定了Repeater字段的page=home静态页面,需要手动传入对应页面ID才能正确读取字段值,你可以调用WordPress内置函数get_option('page_on_front')直接获取后台设置的静态首页ID,无需硬编码。
修改后的代码如下:
<div class="repeater"> <h1>客户评价</h1> <?php // 获取静态首页ID $home_page_id = get_option('page_on_front'); if( have_rows('client-testimonial', $home_page_id) ): ?> <ul> <?php while ( have_rows('client-testimonial', $home_page_id) ) : the_row(); ?> <li><p><?php the_sub_field('client-name'); ?></p></li> <li><p><?php the_sub_field('client-role'); ?></p></li> <?php endwhile; ?> </ul> <?php endif; ?> </div>
2. 校验字段拼写与配置
- 确认ACF后台的Repeater字段名
client-testimonial、子字段名client-name、client-role的拼写、大小写和代码完全一致,避免手误 - 确认该静态首页的编辑页面已经填写了至少一条Repeater内容并完成发布
- 检查ACF字段的显示条件,确认已正确绑定到对应静态首页
内容的提问来源于stack exchange,提问作者Nati Cabti
相关产品推荐
相关产品推荐

