情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。
- 継続的に時間枠で予約を受け付けるサンプル(スライド表示)
- 継続的に時間枠で予約を受け付けるサンプル(カレンダー表示)
- イベントアーカイブをカレンダーで表示するサンプル
- イベントアーカイブを一覧で表示するサンプル
- ランダムなイベントをカレンダーで予約受付のサンプル
- Calculated Fields Form で確認画面付きメールフォーム
- Contact Form 7 確認画面をjQuery で開くサンプル
Advanced Custom Fields リピーターで設定した予約可能日時やイベントの開催日をカレンダーで表示するのに必要な設定について
コードはこちら参照
リピーターの外側で日付を登録、内側のリピーターで時間枠やイベント投稿を登録するのだが、テーブルでカレンダーを出力するコードは日付のtdの部分にループがあるので、外側のリピーターはループにしないで $rows = get_field(‘repeater’); のように取得して内側のリピーターのみループにする。この場合、外側のリピーターの行数(カウント)が必要になる。
外側のリピーターの行数が一月の日数分ある場合
休業日以外は全てに予約枠がある場合は、1月のスケジュールを1投稿として、外側のリピーターで年月日と休業日のチェック、内側のリピーター(休業にチェックがある場合は非表示)で時間枠と定員などを登録する。
*acf/load_value で指定した年月のフィールドを作成するため、すべての日付のフィールドがあるので、日付マイナス1が行数になる。これをカウントとして利用する。
$subrows = $rows[行数]['subrepeater']; foreach( $subrows as $subrow ) ~のように、内側のリピーターをループ。
カレンダーの表示コードはACFで設定した年月を出力するようにする。
必要のある日付のみ追加する場合
外側のリピーターに登録した日付を参照用のフィールドに連結して保存し、カレンダーの日付が含まれる場合のみ、内側のリピーターを取得するので、カレンダーの日付のループの前に外側のリピーターのカウントをスタートし、カレンダーの日付とイコールの場合にカウントを増やす。
カレンダーは今月から出力するため、今月のループをスタートする前にそれまでのカウントを取得する。
*今日の次の開催日を基準に表示したい場合は、一度リピーターをループして今日の次の開催月を取得して、月のループでその開催付きより前はcontinue で飛ばす。
設定したすべての日付をカレンダーで表示したい場合は、日付データの他に今月以降の年月データを保存して、これをループする。
その他のAdvanced Custom Fields に関する記事一覧
- カレンダー表示の日時予約サンプル
- ACF リピーターをカレンダーに出力するコードの解説の続き
- acf サブフィールドの合計を親フィールドに入れる
- ACF リピーターをカレンダーに出力するコードの解説など
- ブロックエディターでブロックを制限する
- ACF リピーターをカレンダーに出力するコード
- ACF 指定した年月のデータを一気にサブフィールドに入れる
- ワードプレスの最強ツール
- トップページのよくある要望
- ランダムな複数開催日のイベントをカレンダーに
- qtranslate の投稿を言語ごとに分ける
- ブロックエディターを一部オフに
- wpcf7_add_form_tag フィールドの出し分け
- お知らせのリンク先
- ACF リピーターとモーダルウィンドウ
- カレンダーの祝日データ
- ランダムな開催日のイベントアーカイブ
- 日付の配列から今日以前を削除
- ACF リピーター内の値を配列に入れる
- ACFとCF7 予約・申し込み受付からリマインドメールまで