WordPress plugin intelligence profile

WST Post Expiration

Set an expiration date and time on a post. Once that time passes, the post is moved back to draft automatically.

WP PlugIndex snapshot

Current directory snapshot

Tested up to WordPress 7.1
Current version1.0.0
WordPress coverageTested up to WordPress 7.1
Minimum stackWP 7.0 · PHP 8.2
Directory statusactive
Last directory update30 Sept 20261mo ago
Active installations10Adoption metric — not a quality score
WordPress.org ratingNo WordPress.org ratings yet
Official packageDirect from WordPress.org

Repository metrics are context, not quality scores. Active installations measure adoption and can strongly reflect a plugin’s age and historical popularity. Ratings, recent updates and “Tested up to” metadata also do not guarantee modern code, error-free operation, security, feature completeness or suitability for a particular site. Why active installs don’t tell the whole story →

WP PlugIndex currently records WST Post Expiration version 1.0.0 as active, updated 1mo ago and tested up to WordPress 7.1.

Overview

About this plugin

WST Post Expiration adds an expiration date and time to your posts. Once that time passes, the post switches from published to draft automatically. It keeps announcements and campaign pages with a fixed run time from staying public after they are over.

The date is set where you already work: the block editor sidebar, the classic editor meta box, or Quick Edit on the post list. An “Expiration” column is added to the post list, so you can see at a glance which posts expire and when.

How it works

  • Each post with an expiration date gets its own single WP-Cron event, scheduled for exactly that time
  • An hourly fallback picks up posts whose event was lost (after a site copy, damaged cron data, and the like)
  • An expiration date that is already in the past is handled on the next cron run
  • An expired post becomes a draft. The target status can be changed with the wst_post_expiration_new_status filter
  • Clearing the field removes the scheduled event

Features

  • One expiration date and time per post
  • Set it from the block editor sidebar, the classic editor, or Quick Edit
  • An “Expiration” column on the post list
  • Choose which post types can have an expiration date (posts, pages, and custom post types)
  • A “Scheduled events” section on the settings screen shows the posts with an expiration date and the events registered for them, with a “Reschedule” button to repair a mismatch
  • Times are evaluated in the site timezone (Settings > General)
  • Developer hooks: wst_post_expiration_new_status (filter), wst_post_expiration_expired (action), wst_post_expiration_settings_capability (filter)

Capabilities

  • Setting the expiration date of a post requires permission to edit that post
  • Changing the plugin settings requires administrator permissions ( manage_options ). Use the wst_post_expiration_settings_capability filter to change this

Before you start

  • Expiration relies on WP-Cron. On a low traffic site, cron only runs when someone visits, so the change may be applied a little late. Calling wp-cron.php from a server-side cron job makes it exact.
  • Moving a post to draft is a real status change. To bring it back, publish it again. The expiration date stays on the post, so it fires again while that time is in the past. Clear or update the date as well.
  • Deactivating the plugin removes every scheduled event. The dates stay on the posts, so activating it again schedules them once more.
WordPress.org metadata

Plugin tags

Topics listed for this plugin in the WordPress.org directory.

  • editorial workflow
  • cron
  • expiration
  • schedule
  • unpublish
Compatibility & maintenance

Compatibility & maintenance

Tested with WP 7.1

Marked as tested with the current WordPress 7.1 release.

Current WordPress releaseWordPress 7.1
WordPress.org Tested up to7.1
Minimum requirementsWordPress 7.0 · PHP 8.2
Update activity30 Sept 20261mo ago

“Tested up to” is directory metadata supplied by the plugin author. WP PlugIndex does not turn an older declaration into a claim that the plugin is incompatible.

Changes recorded by WP PlugIndex

Recent tracked changes

No tracked version or compatibility changes have been recorded by WP PlugIndex yet.

Tracking & source

WP PlugIndex tracks public WordPress.org directory metadata and records selected version, compatibility and availability changes as they are detected.

Plugin watchlist

Watch this plugin

Sign in to your WP PlugIndex account or create a free account. Free accounts can watch up to 5 plugins and see what changed.

Watch limit

Watchlist limit reached

You have reached your current active watch limit.