情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。
この記事はかなり古いので、出勤・スケジュール管理の覚書2 参照してください。
カスタム投稿「スケジュール(1日1投稿)」「キャスト(1人1投稿)」、カスタムフィールドの設定はAdvanced Custom Fields を使用。
「スケジュール」はデイトピッカーで日付を指定し、この日付がタイトルになるように設定。繰り返しフィールドで投稿オブジェクト(キャスト)と勤務時間のフィールド。
「スケジュール」のアーカイブは日付が今日よりも大きいものを表示。出勤キャストの情報は投稿オブジェクトのフィールドを取得して、そのIDからキャストのカスタムフィールドを取得して表示。
<?php if (get_field('casts')) { ?><?php while(the_repeater_field('casts')): ?> <?php $post_object = get_sub_field('cast'); ?><?php the_field('profile', $post_object->ID); ?> <?php endwhile; } ?>
「キャスト」の個別ページに数日分のスケジュールを表示。
今日の日付、今日プラス1、今日プラス2…で日付を取得して、「スケジュール」の、その日付のタイトルの投稿IDを取得、そのIDの繰り返しフィールドの中にキャストの投稿のIDがあったら勤務時間を表示。
*日付を取得する際にズレがある場合はタイムゾーンを指定。
<?php date_default_timezone_set('Asia/Tokyo'); $week = array ( '日', '月', '火', '水', '木', '金', '土' ); ?> <?php echo date("n月j日"); echo ' (' . $week[date ('w')] . ')'; ?> <?php echo date("n月j日", strtotime("+1 day")); echo ' (' . $week[date ( 'w', strtotime("+1 day") )] . ')'; ?> <?php echo date("n月j日", strtotime("+2 day")); echo ' (' . $week[date ( 'w', strtotime("+2 day") )] . ')'; ?>
その他の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 チェックボックス(複数選択)のアップデート