如何将ACF Repeater字段每行值存入单个PHP数组?
解决ACF Repeater日期字段存入数组的问题
嘿,我猜你是在循环ACF Repeater的时候犯了个小错误——应该是把数组初始化的代码放到循环里了,导致每次循环都新建一个空数组,所以每次var_dump出来的都是只包含当前行日期的单元素数组。
给你一个正确的实现方式:
// 先在循环外面初始化一个空数组,用来存所有日期 $dates = []; // 检查Repeater字段是否有数据 if (have_rows('你的_repeater_slug')) { // 遍历每一行Repeater内容 while (have_rows('你的_repeater_slug')) { the_row(); // 获取当前行的日期子字段值(替换成你的日期子字段slug) $current_date = get_sub_field('your_date_subfield_slug'); // 把当前日期追加到数组里 $dates[] = $current_date; } } // 现在var_dump出来的就是包含所有日期的完整数组了 var_dump($dates);
之前的问题根源应该是你把$dates = [];写在了while循环内部,这样每循环一次就重置一次数组,自然每次只能存一个值。
另外提醒一下,这里用到的字段名都是ACF后台设置的字段slug(也就是字段的英文标识,不是显示名称),别写错了哦。如果还是有问题,可以先在循环里单独echo $current_date,确认每个日期都能正常获取到。
内容的提问来源于stack exchange,提问作者Liz
相关产品推荐
相关产品推荐

