たとえばQ&Aなどで、質問が固定の場合、質問ごとに回答の入力欄をつけるのが普通かと思うが、質問と回答のセットが結構な数がある場合、リピーターのほうが設定もテーマ書きも楽なので、デフォルト値を設定する方法を探してみた。

リピーターの上限・下限を設定の上、

add_filter('acf/load_value/key=リピーターのキー',  'acf_load_repeater_value', 10, 3);
	function acf_load_repeater_value($value, $post_id, $field) {
		if ( get_post_status( $post_id ) === 'auto-draft' ) {
			if( get_post_type( $post_id ) == 'posttype' ){
				$value	= array();
 
				$value[] = array(
					'サブフィールドのキー' => '質問1'
				);
				$value[] = array(
					'サブフィールドのキー' => '質問2'
				);
				$value[] = array(
					'サブフィールドのキー' => '質問3'
				);
				$value[] = array(
					'サブフィールドのキー' => '質問4'
				);
				$value[] = array(
					'サブフィールドのキー' => '質問5'
				);
			}
		}
		return $value;
	}

のようにして、編集してほしくない場合はAdd Admin CSSなどでクリックできないように設定。
フィールドのキーはPHPでエクスポートするか、編集ページのソースで確認。

2020.02.27 投稿 2020.02.29 更新

新しい情報を追記している場合はありますが、古い情報の修正はしていません。投稿日・文中の日付を参照してください。

Recent Articles