ACF リピーターをカレンダーに出力するコードの解説など

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

ACF リピーターをカレンダーに出力するコードについて

紹介したコードの投稿欄は↓のようになっていて、これは定員締切の実装を依頼されたサイトが既に稼働中だったためですが、
画像表示
リピーターで年月日を追加していく設定に、年月日と年月を別にacf/save_post で保存する関数とフィールドを追加。
テーマ側では
・年月日フィールドの値を配列に入れる
・年月フィールドの値を配列に入れて、重複を削除
・カレンダーの表示を始める年月を取得
・カレンダーの表示を始めるところがリピーターの何行目かを取得してカウントに入れる
・カレンダーでは日付が年月日の配列に入っていたら~でイベント情報を表示
のようになっている。

が、運用上、終了したイベントの情報を削除するときには年月単位で括ってあったほうが簡単でいいのではないか?

と思って、このような設定の場合のコードも書いてみた。

・年月日を取得して配列に入れる
・リピーターの外側、年月をループして、内側リピーターの最後の行の日付が「今日」よりも小さければ飛ばす
・カレンダーの日付は配列に入っているかどうかで分岐するところは同じ
で、こちらのほうがコードは幾分少ない。

実装したサイトでは、今月の予約枠がいっぱいであれば今月の表示を飛ばす、というのも入っていますが、これは予約が一杯になったチェックボックスと、予約送信時に枠数を減らし、0になったらチェックを入れる関数が必要です。

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

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