ネストとは、”入れ子”になったという意味で、例えば下記のような構造です。
Field X (Type: Repeater Field)
Sub Field A1 (Type: Text)
Sub Field A2 (Type: Repeater Field)
Sub Field A2' (Type: Text)
“Sub Field A1″のような、リピーターフィールドのサブフィールドの初期値を自動追加するコードは既に公開されていた文献を見付けました。
Add default values to ACF Repeater Fields“Sub Field A2″のような、リピーターフィールドのサブフィールドとして存在するリピーターフィールドのサブフィールドで同じようなことをする場合は、連想配列をもう1つ作る必要があります。
具体的には下記のようになります。
function acf_load_repeater_value($value, $post_id, $field) {
if ( get_post_status( $post_id ) === 'auto-draft' ) {
if( get_post_type( $post_id ) == 'post' ){ // 投稿タイプ指定
$openTimes = array();
$times = array(
'10:00-11:00',
'11:00-12:00',
'12:00-13:00',
'13:00-14:00',
'14:00-15:00'
);
foreach ($times as $key => $time) {
$openTimes[] = array(
'<SubFieldKey>' => $time
);
}
$value = array();
for ( $i = 1; $i <= 3; $i++ ) {
$value[] = array(
'<ChildRepeaterFieldKey>'=> $openTimes
);
}
}
}
return $value;
}
add_filter('acf/load_value/key=<ParentRepeaterFieldKey>', 'acf_load_repeater_value', 10, 3);
<ParentRepeaterFieldKey>は親のリピーターフィールド(例では”Field X”)のフィールドキー、<ChildRepeaterFieldKey>は親の子のリピーターフィールド(例では”Sub Field A2″)のフィールドキー、<SubFieldKey>は子のリピーターフィールド(例では”Sub Field A2′”)のサブフィールドキーです。
なお、「フィールドキー」については、ACFフィールドグループ管理画面で「表示オプション」を展開して「フィールドキー」にチェックを入れると表示されるようになります。