ACF リピーターをカレンダーに出力

情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。

テーブルでカレンダーを出力するコードは日付のtdの部分にループがあるので、外側のリピーターはループにしないで $rows = get_field(‘repeater’); のように取得して内側のリピーターのみループにする。この場合、外側のリピーターの行数(カウント)が必要になるので、その設定などについて。

外側のリピーターの行数が一月の日数分ある場合

すべての日付のフィールドがある場合は日付マイナス1が行数になるので、これをカウントとして利用する。
$subrows = $rows[行数]['subrepeater']; foreach( $subrows as $subrow ) ~
カレンダーの表示コードはACFで設定した年月を出力するようにする。

必要のある日付のみ追加する場合

外側のリピーターに登録した日付を参照用のフィールドに連結して保存し、カレンダーの日付が含まれる場合のみ、内側のリピーターを取得するので、カレンダーの日付のループの前に外側のリピーターのカウントをスタートし、カレンダーの日付とイコールの場合にカウントを増やす。

カレンダーは今月と来月、のように出力し、今月のカウントは $count=0; から始めて、来月分は $count2=$count; で始める。

1月分の日程を表示するサンプル / 登録日のみ表示するサンプル

その他のAdvanced Custom Fields に関する記事一覧

Advanced Custom Fields に関する記事一覧ページへ