管理者は、公開・予約・非公開の全ての記事を表示<br>一般ユーザーは、公開済みの記事だけ表示 | OFFのパソコン日記

管理者は、公開・予約・非公開の全ての記事を表示
一般ユーザーは、公開済みの記事だけ表示

これまで予約記事は、投稿一覧内のプレビューでは表示されるものの、実際のサイトでレイアウトや文章が確認でないため、管理者は、公開・予約・非公開の全ての記事を表示できるように変更しました。

全体の動作概要

基本的な考え方

■ 管理者は、公開・予約・非公開の全ての記事を表示
■ 一般ユーザーは、公開済みの記事だけ表示

1.記事の状態

状態
公開(publish) 現在、一般公開記事
予約(future) 将来公開記事
非公開(private)一般非公開記事

2.管理者と一般ユーザーで見える範囲を変える

管理者かどうか確認

管理者の場合
公開記事
予約記事
非公開記事
↓
すべて表示

一般ユーザーの場合
公開記事
↓
表示

予約記事
↓
表示しない

非公開記事
↓
表示しない

3.トップページやカテゴリーでの動作

管理者の場合
公開記事
予約記事
非公開記事
↓
すべて表示

一般ユーザーの場合
公開記事
↓
表示

予約記事
↓
表示しない

非公開記事
↓
表示しない

4.Cocoonのショートコード new_list も同じ動作

5.予約記事を直接開いた場合

管理者の場合
URLを直接開く
↓
予約記事を表示
↓
公開前の記事を表示

一般ユーザーの場合
URLを直接開く
↓
予約記事
↓
404(ページが存在しない)

URLを知っているだけでは、一般ユーザーは公開前の記事を見ることができない

6.予約投稿の便利性

トップページ
カテゴリー
ショートコード new_list
などに、その予約記事が表示される
↓
実際のサイトでレイアウトや文章を確認でる

7.非公開記事は確認用表示

8.コード全体の役割

① 管理者かどうか判断
↓
② 管理者なら
公開・予約・非公開を表示
↓
③ Cocoonの new_list にも
同じルールを適用
↓
④ 予約記事を直接開いた場合も
管理者だけ閲覧可能

🔵 管理者
↓
┌──────────────┐
│ 公開記事 │ ○
│ 予約投稿 │ ○
│ 非公開記事 │ ○
└──────────────┘
🟢 一般ユーザー
↓
┌──────────────┐
│ 公開記事 │ ○
│ 予約投稿 │ ×
│ 非公開記事 │ ×
└──────────────┘