WST Post Expiration

説明

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 から呼ぶ設定にすると正確になります。
  • 下書きへの変更は実際のステータス変更です。投稿を戻すには公開に設定し直してください。期限の日時は投稿に残ったままなので、まだ過去の時刻であれば再び発火します。あわせて期限を消すか更新してください。
  • プラグインを停止すると、予約イベントはすべて削除されます。設定済みの期限の日時は投稿に残るため、再度有効化すると予約し直されます。

スクリーンショット

インストール

  1. プラグインのファイルを /wp-content/plugins/wst-post-expiration にアップロードするか、「プラグイン > 新規追加」画面からインストールします。
  2. 「プラグイン」画面で有効化します。
  3. wp-admin の「Post Expiration」メニューを開き、期限を設定できる投稿タイプを選びます。
  4. 対象タイプの投稿を編集し、サイドバー・クラシックエディター・クイック編集のいずれかで期限を設定します。

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 から呼べば、この遅れはなくなります。

どのタイムゾーンで判定されますか ?

サイトのタイムゾーン (「設定」>「一般」) です。入力した日時はサイトのローカル時刻として扱われます。

固定ページやカスタム投稿タイプでも使えますか ?

はい。「対象の投稿タイプ」設定で、期限を設定できる投稿タイプを個別に選べます。

プラグインを停止するとどうなりますか ?

予約された期限イベントはすべて削除されます。期限の日時は投稿に残るため、再度有効化すると予約し直されます。

評価

このプラグインにはレビューがありません。

貢献者と開発者

WST Post Expiration はオープンソースソフトウェアです。以下の人々がこのプラグインに貢献しています。

貢献者

“WST Post Expiration” は1ロケールに翻訳されています。 翻訳者のみなさん、翻訳へのご協力ありがとうございます。

“WST Post Expiration” をあなたの言語に翻訳しましょう。

開発に興味がありますか ?

コードを閲覧するか、SVN リポジトリをチェックするか、開発ログを RSS で購読してみてください。

変更履歴

1.0.0

  • 初回リリース