Title: StalePilot &#8211; Content Expiry &amp; Scheduled Post Actions
Author: Teydea Studio
Published: <strong>May 6, 2026</strong>
Last modified: May 6, 2026

---

Search plugins

![](https://ps.w.org/stalepilot/assets/icon.svg?rev=3524397)

# StalePilot – Content Expiry & Scheduled Post Actions

 By [Teydea Studio](https://profiles.wordpress.org/teydeastudio/)

[Download](https://downloads.wordpress.org/plugin/stalepilot.1.0.2.zip)

 * [Details](https://wordpress.org/plugins/stalepilot/#description)
 * [Reviews](https://wordpress.org/plugins/stalepilot/#reviews)
 *  [Installation](https://wordpress.org/plugins/stalepilot/#installation)
 * [Development](https://wordpress.org/plugins/stalepilot/#developers)

 [Support](https://wordpress.org/support/plugin/stalepilot/)

## Description

**StalePilot lets you set an expiry date on any post type and automatically take
action when that date arrives.**

Whether you manage time-sensitive promotions, seasonal content, legal notices with
review deadlines, or news articles that lose relevance, StalePilot gives you the
tools to handle content lifecycle directly within WordPress.

**Key benefits:**

 * Automatically move expired content to draft, private, or trash – no manual cleanup
   needed.
 * Get notified by email before and after content expires, so nothing slips through
   the cracks.
 * Show visitors countdown timers and timed content blocks that respond to expiry
   dates.
 * Manage expiring content at scale with bulk edit, quick edit, and a dashboard 
   widget.

StalePilot works with posts, pages, and custom post types. It integrates with both
the Block Editor (Gutenberg) and the Classic Editor.

### Features

 * **Expiry Date and Action** – Set an expiry date and time on any supported post
   type, and choose what happens: Move to Draft, Make Private, or Move to Trash.
 * **Block Editor Integration** – Sidebar panel in Gutenberg for configuring expiry
   date, time, and action.
 * **Classic Editor Integration** – Metabox in the sidebar for configuring expiry
   on sites using the Classic Editor.
 * **Posts List Column** – Sortable expiry column in admin list tables showing scheduled
   or past expiry dates.
 * **Expired Posts Filter** – Dedicated “Expired” view in the posts list with a 
   count of expired posts.
 * **Quick Edit and Bulk Edit** – Edit expiry settings inline or for multiple posts
   at once.
 * **Dashboard Widget** – “Expiring Soon” widget showing posts approaching their
   expiry date within a configurable time window.
 * **Email Notifications** – Get notified when content expires, with optional pre-
   expiry warnings (1, 3, or 7 days before).
 * **Configurable Recipients** – Send notifications to specific user roles or individual
   users.
 * **Expiry Countdown Block** – Display a live countdown timer or static date on
   the front end, with customizable colors and thresholds. Also available as a `[
   stalepilot_countdown]` shortcode.
 * **Timed Content Block** – Show or hide content based on a date, relative time
   from publish, or the post’s expiry date. Also available as a `[stalepilot_timed_content]`
   shortcode.
 * **Automatic Scheduling** – Expiry is automatically cancelled on trash/delete 
   and rescheduled on restore.
 * **Developer Hooks** – Extensible via actions and filters for custom integrations.

## Blocks

This plugin provides 2 blocks.

 *   Countdown Display a countdown timer or static date for the content expiry.
 *   Timed Content Show or hide inner blocks based on a date/time condition.

## Installation

 1. Upload the `stalepilot` directory to `/wp-content/plugins/`, or install it directly
    through the WordPress plugin screen.
 2. Activate the plugin through the “Plugins” screen in WordPress.
 3. Go to **Settings > StalePilot** to choose which post types support expiry and configure
    default actions and notifications.
 4. Edit any post or page and use the “StalePilot” panel in the sidebar to set an expiry
    date and action.

## FAQ

### Which post types are supported?

By default, StalePilot is enabled for posts and pages. You can enable it for any
public custom post type in the plugin settings under **Settings > StalePilot**.

### What happens when a post expires?

The plugin performs the action you selected for that post: it moves the post to 
draft, makes it private, or moves it to trash. You can set a default action in the
settings and override it per post.

### Can I display a countdown timer on the front end?

Yes. The plugin includes an Expiry Countdown block (and a `[stalepilot_countdown]`
shortcode) that displays either a live countdown timer or a static formatted date.
You can customize colors, threshold warnings, and the expired message.

### What happens if I restore a trashed post that had an expiry date?

If the expiry date is still in the future, the plugin automatically reschedules 
the expiry. If the expiry date has already passed, the stale expiry metadata is 
cleaned up.

### Where can I find the unminified source code?

All source ships with the plugin: the plugin’s own JavaScript is in `src/`, and 
the bundled `@teydeastudio/components` and `@teydeastudio/utils` libraries are in`
deps/js/components/src/` and `deps/js/utils/src/`. To rebuild, install Node.js 20
and run `npm install && npm run build` in the plugin directory.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“StalePilot – Content Expiry & Scheduled Post Actions” is open source software. 
The following people have contributed to this plugin.

Contributors

 *   [ Teydea Studio ](https://profiles.wordpress.org/teydeastudio/)
 *   [ Bartosz Gadomski ](https://profiles.wordpress.org/bartoszgadomski/)

[Translate “StalePilot – Content Expiry & Scheduled Post Actions” into your language.](https://translate.wordpress.org/projects/wp-plugins/stalepilot)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/stalepilot/), check
out the [SVN repository](https://plugins.svn.wordpress.org/stalepilot/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/stalepilot/) by 
[RSS](https://plugins.trac.wordpress.org/log/stalepilot/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.2 (2026-04-27)

 * An FAQ entry added to readme.txt, explaining where the unminified source code
   lives in the plugin and how to rebuild it from source

#### 1.0.1 (2026-04-24)

 * The “Pre-expiry warning” and “Dashboard widget window” settings now accept any
   number of days within a reasonable range, with quick-set presets for common values
 * Direct loading of wp-includes/version.php in the WordPress version detection 
   fallback removed

#### 1.0.0 (2026-04-07)

 * Initial release.

## Meta

 *  Version **1.0.2**
 *  Last updated **21 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.6 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [content expiry](https://wordpress.org/plugins/tags/content-expiry/)[content management](https://wordpress.org/plugins/tags/content-management/)
   [post expiry](https://wordpress.org/plugins/tags/post-expiry/)[scheduled content](https://wordpress.org/plugins/tags/scheduled-content/)
 *  [Advanced View](https://wordpress.org/plugins/stalepilot/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/stalepilot/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/stalepilot/reviews/)

## Contributors

 *   [ Teydea Studio ](https://profiles.wordpress.org/teydeastudio/)
 *   [ Bartosz Gadomski ](https://profiles.wordpress.org/bartoszgadomski/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/stalepilot/)