情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。
Advanced Custom Fields で、たとえば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 に関する記事 新着
- CF7 カスタムフィールドをつける
- ACF 投稿オブジェクトでメールフォームを選択
- Booking Package など予約受付の話
- ACF 便利機能 2026年更新
- 休日・休業日データ
- 投稿者にタームを紐づける
- スクリプトの記述をACF リピーターで
- qtranslate からpolylang への移行を試す
- ACF 複数パターンの設定
- ACFとEasy Table of Contents
- ACF 画像フィールドのサイズ指定
- ACF Blocks VS ショートコード
- CF7 デートピッカーに休業日を設定
- スラッグ設定の関数
- ACF エディターの自動整形を止める
- カレンダー表示の日時予約サンプル
- ACF リピーターをカレンダーに出力するコードの解説の続き
- acf サブフィールドの合計を親フィールドに入れる
- ACF リピーターをカレンダーに出力するコードの解説など
- ブロックエディターでブロックを制限する
関数書きますので、気軽にお問い合わせください。
問い合わせフォーム / m.fuchibe@web-taiyo.com / Chatwork ID:taiyoblog