情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。
たとえば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.11追記
プロ版の5.9以降、一覧にキーが表示できるようになった。
2021.2追記
一応質問の内容は決まっているが変更があるかも知れない場合は、繰り返しフィールド数の上限・下限の設定はなしで、上記の設定だけしておけば、新規投稿時にはサブフィールドに値が入った状態で、追加・削除・編集した場合はそれで保存される。
2021.7追記
すでに投稿が存在する状態で、デフォルト値付きのリピーターを追加したい場合は、
~auto-draft~の行をなしで、if( get_post_type( $post_id ) == ‘xxxx’ && empty($value) ){
その他のAdvanced Custom Fields に関する記事一覧
- ACF デートピッカーのフォーマット設定
- ACF リピーターをカレンダーに出力(予約カレンダーの実装)
- ACF 入れ子リピーターの内側だけループ
- WP REST API 独自エンドポイントとACF
- ACF 値の登録や保存
- REST API でACFの表示など
- Advanced Custom Fields の表示、まとめ
- PHP8以降で出るWarning
- イベントの開催期間の表示
- イベント終了時にタイトルに追加する
- アクセスランキング
- ワードプレスからメール送信
- CF7で予約した人にリマインドメールを送る
- ACF 設定ページ(オプションページ)
- ACF escape HTML
- 出勤・スケジュール管理の覚書2
- ACF 複数選択チェックボックスのチェックの有無
- Advanced Custom Fields で役立つ関数
- 日時予約簡易版
- ACF チェックボックス(複数選択)のアップデート