情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・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 に関する記事一覧
- アクセスランキング
- ワードプレスからメール送信
- CF7で予約した人にリマインドメールを送る
- ACF 設定ページ(オプションページ)
- ACF escape HTML
- 出勤・スケジュール管理の覚書2
- ACF 複数選択チェックボックスのチェックの有無
- Advanced Custom Fields で役立つ関数
- 日時予約簡易版
- ACF チェックボックス(複数選択)のアップデート
- ACF アップデート WPForms Lite の場合
- フォームを定員で締め切る関数の話
- WP All Import とACF メモ
- CF7 投稿IDとフォームID
- 管理画面メニューや編集ページの一部非表示
- ACF サブフィールドのアップデート
- ACF入れ子のグループフィールドのアップデート
- ACFデートピッカーのフォーマット注意点
- ページ・投稿の差し替え更新
- ゆっくり編集・プレビューして更新する