説明
WST Post Expiration は、投稿に公開期限の日時を追加します。設定した時刻を過ぎると、投稿は公開から下書きへ自動で切り替わります。掲載期間が決まっているお知らせやキャンペーン告知が、終了後もそのまま公開され続けるのを防げます。
期限の設定は、ふだん作業している場所からそのまま行えます。ブロックエディターのサイドバー、クラシックエディターのメタボックス、投稿一覧のクイック編集のいずれからでも設定できます。投稿一覧には「公開期限」列が追加され、どの投稿がいつ期限を迎えるかを一覧で確認できます。
動作のしくみ
- 期限が設定された投稿ごとに、その時刻ちょうどに発火する単発の WP-Cron イベントを持ちます
- 予約イベントが失われた場合 (サイトの複製後や cron データの破損など) に備えて、1時間ごとのフォールバック処理が取りこぼしを拾います
- 設定した期限がすでに過去の場合は、次回の cron 実行時に処理されます
- 期限を迎えた投稿は
draftになります。遷移先のステータスはwst_post_expiration_new_statusフィルターで変更できます - 期限の入力欄を空にすると、予約イベントは解除されます
主な機能
- 投稿ごとに公開期限の日時を1つ設定
- ブロックエディターのサイドバー/クラシックエディター/クイック編集から設定
- 投稿一覧に「公開期限」列
- 期限を設定できる投稿タイプを選択可能 (投稿・固定ページ・カスタム投稿タイプに対応)
- 設定画面の「予約状況」で、期限付きの投稿と実際に登録されている予約を確認 (ズレていれば「再予約」で修復)
- 日時はサイトのタイムゾーン (「設定」>「一般」) で判定
- 開発者向けフック:
wst_post_expiration_new_status(フィルター)、wst_post_expiration_expired(アクション)、wst_post_expiration_settings_capability(フィルター)
権限について
- 投稿の期限を設定するには、その投稿を編集する権限が必要です
- プラグインの設定変更には管理者権限 (
manage_options) が必要です。wst_post_expiration_settings_capabilityフィルターで変更できます
使う前に知っておいてほしいこと
- 期限処理は WP-Cron に依存します。アクセスの少ないサイトでは、cron は誰かがサイトを訪れたときにだけ動くため、期限の反映が少し遅れることがあります。
wp-cron.phpをサーバーの cron から呼ぶ設定にすると正確になります。 - 下書きへの変更は実際のステータス変更です。投稿を戻すには公開に設定し直してください。期限の日時は投稿に残ったままなので、まだ過去の時刻であれば再び発火します。あわせて期限を消すか更新してください。
- プラグインを停止すると、予約イベントはすべて削除されます。設定済みの期限の日時は投稿に残るため、再度有効化すると予約し直されます。
インストール
- プラグインのファイルを
/wp-content/plugins/wst-post-expirationにアップロードするか、「プラグイン > 新規追加」画面からインストールします。 - 「プラグイン」画面で有効化します。
- wp-admin の「Post Expiration」メニューを開き、期限を設定できる投稿タイプを選びます。
- 対象タイプの投稿を編集し、サイドバー・クラシックエディター・クイック編集のいずれかで期限を設定します。
FAQ
-
投稿が期限を迎えると何が起きますか ?
-
ステータスが公開から下書きに変わります。本文・タイトル・その他のデータはそのままです。
-
下書きではなくゴミ箱や非公開にできますか ?
-
コードで可能です。
wst_post_expiration_new_statusフィルターでprivate・pending・trash、または登録済みの任意のステータスを返してください。trash goes through the standard WordPress trash handling. When the trash is disabled (`EMPTY_TRASH_DAYS` is `0`), the post is kept as a draft instead of being deleted permanently. -
時刻を設定したのにすぐ切り替わりません
-
期限処理は WP-Cron 経由で動き、誰かがサイトを訪れたときに実行されます。アクセスの少ないサイトでは、次の訪問まで待つことになります。
wp-cron.phpをサーバー側の cron から呼べば、この遅れはなくなります。 -
どのタイムゾーンで判定されますか ?
-
サイトのタイムゾーン (「設定」>「一般」) です。入力した日時はサイトのローカル時刻として扱われます。
-
固定ページやカスタム投稿タイプでも使えますか ?
-
はい。「対象の投稿タイプ」設定で、期限を設定できる投稿タイプを個別に選べます。
-
プラグインを停止するとどうなりますか ?
-
予約された期限イベントはすべて削除されます。期限の日時は投稿に残るため、再度有効化すると予約し直されます。
評価
このプラグインにはレビューがありません。
貢献者と開発者
変更履歴
1.0.0
- 初回リリース


