これまで予約記事は、投稿一覧内のプレビューでは表示されるものの、実際のサイトでレイアウトや文章が確認でないため、管理者は、公開・予約・非公開の全ての記事を表示できるように変更しました。
全体の動作概要
基本的な考え方
■ 管理者は、公開・予約・非公開の全ての記事を表示
■ 一般ユーザーは、公開済みの記事だけ表示
1.記事の状態
状態
公開(publish) 現在、一般公開記事
予約(future) 将来公開記事
非公開(private)一般非公開記事
2.管理者と一般ユーザーで見える範囲を変える
管理者かどうか確認
管理者の場合
公開記事
予約記事
非公開記事
↓
すべて表示
一般ユーザーの場合
公開記事
↓
表示
予約記事
↓
表示しない
非公開記事
↓
表示しない
3.トップページやカテゴリーでの動作
管理者の場合
公開記事
予約記事
非公開記事
↓
すべて表示
一般ユーザーの場合
公開記事
↓
表示
予約記事
↓
表示しない
非公開記事
↓
表示しない
4.Cocoonのショートコード new_list も同じ動作
5.予約記事を直接開いた場合
管理者の場合
URLを直接開く
↓
予約記事を表示
↓
公開前の記事を表示
一般ユーザーの場合
URLを直接開く
↓
予約記事
↓
404(ページが存在しない)
URLを知っているだけでは、一般ユーザーは公開前の記事を見ることができない
6.予約投稿の便利性
トップページ
カテゴリー
ショートコード new_list
などに、その予約記事が表示される
↓
実際のサイトでレイアウトや文章を確認でる
7.非公開記事は確認用表示
8.コード全体の役割
① 管理者かどうか判断
↓
② 管理者なら
公開・予約・非公開を表示
↓
③ Cocoonの new_list にも
同じルールを適用
↓
④ 予約記事を直接開いた場合も
管理者だけ閲覧可能
🔵 管理者
↓
┌──────────────┐
│ 公開記事 │ ○
│ 予約投稿 │ ○
│ 非公開記事 │ ○
└──────────────┘
🟢 一般ユーザー
↓
┌──────────────┐
│ 公開記事 │ ○
│ 予約投稿 │ ×
│ 非公開記事 │ ×
└──────────────┘

