こちらも参照
概要
- スタート(固定ページ:フロントエンド新規作成&管理者用アーカイブ):
- フロントエンドから新規投稿を作成(下書きdraft)
- OKボタンをクリック=下書きdraft状態の投稿が完成
- 管理者用アーカイブのドラフト一覧から該当する投稿draftを開く
- 内容を編集、確認して①すぐに公開②予約投稿
- ACF-stetasで公開publishを選んでOKボタン
- ACF-stetasはdraftのまま、ACF日時ピッカーで公開日を指定。指定日時になれば投稿を公開。
- OKボタンをクリック
- OKボタンが押された際のバックエンド動作
- ACF-stetasの指定に合わせてWPステータスを切り替え
- ACF-stetasがpublishの場合はACF日時ピッカーの値を削除
- バックエンドで動くスケジュールイベント
- WP-Cron
- WordPressで時間ベースのタスクをスケジュール
- 毎時00分に確認
- イベントフック処理
- 指定公開日までは
- アーカイブ非表示(あたりまえなのでfunctionsコードカット)
- ロボット検索対象外設定(あたりまえなのでfunctionsコードカット)
- 公開する処理
- 対象:投稿draftであり、ACF-stetasの値がdraft&ACF日時ピッカー値が
- ‘post_status’ => ‘publish’:WPステータスを公開にする
- ACF-stetasの値を公開publishに変更する
- ACFピッカー値をクリアする
- 公開後は
- アーカイブ表示
- ロボット検索対象
ポイント
WPステータスは基本的にACFの値を元にして動く
WordPressの日時フォーマット:Y-m-d H:i:s
公開トリガー
- wp_schedule_event() によって「現在時刻」と「ACF指定公開日時」の比較チェック
- 現在時刻が公開日時以上=投稿が公開(ステータス変更publish)
仕組みの流れ
- ACFで公開日を指定する日時ピッカー、scheduled_publish_date を作成
- 投稿にACF日時ピッカー(scheduled_publish_date)を結びつけ
- 投稿画面でACF日時ピッカーを入力して公開日時を指定
- 公開日時まではステータスが下書き(draft)となる
- 公開日時まではアーカイブ非表示&ロボット検索回避
- 公開日時と現在日時が一致すると投稿は公開
- wp_schedule_event() で毎時スケジュールチェック
- 公開条件が成立した場合に処理
- 投稿のステータス変更=公開(publish)
- 投稿の投稿日をACF日時ピッカー指定した公開日時に書き換え
- アーカイブ表示&ロボット検索対象
- wp_schedule_event() で毎時スケジュールチェック