目次
やりたいこと
例えばプレスリリースをWEBサイト上で公開する際、過去のプレスリリースを一般公開するのは通常のPost一覧を使えば問題ありませんが、将来公開する予約投稿を一覧表示させることはWordPressの初期設定ではできません。
一般読者には非公開にしたいが、メディアなど関係者(ログインユーザー)には予約投稿を閲覧可能にする方法をWordPress+Elementor Pro(有料)+JetElements(有料)で実現する方法です。
実現したこと
作成したサンプル画面は2021年4月6日時点の投稿一覧です。
将来の投稿セクションでは4月27日、4月30日の2点の予約投稿が一覧表示されています。
一方、過去の投稿セクションでは4月1日、4月3日の投稿が一覧表示されています。
JetElementsのCustom Post Gridウィジェット
今回使用するのはJetElements($24)のCustom Post Gridウィジェットです。
[blogcard url=”https://crocoblock.com/plugins/jetelements/”]
ELEMENTOR上でのCustom Post Gridの設定
ELEMENTOR上でJetElements>Postsを選択して投稿一覧を配置します。
左サイドバーのパラーメータの設定からUse Custom Queryをオンにし、Custom Query欄に
{“post_type”:”ポストタイプ名”,”post_status”:”future”,”order”:”ASC”,”orderby”:”date”}
と入力します。ポストタイプは通常の投稿であればpostですが、上記の例のようにカスタムポストタイプ(pressrelease)を指定することも可能です。
JetElementsではCustom Queryを設定するWEBページが用意されているのでこのページにアクセスして表示させたい投稿のパラメータを設定することが可能です。
(番外)No Future Postsを使った設定
No Future Postsプラグインを使用すれば予約投稿を投稿済として扱うことが可能ですが、今回のように一般読者とメディア関係者のようにユーザーロールで表示を制御させたいという場合には機能不足です。
No Future Postsで制御できることはPost IDとCategory IDで非表示設定は可能ですが、いちいち手作業で表示設定をさせるのも面倒です。
その点、今回ご紹介した方法は一度設定をしてしまえば、当日になれば一般に公開され、メディア関係者には常に将来の投稿を表示させるといった細かな表示設定が可能なのでお勧めです。