plugin-icon

Creotec Content Expiration Manager

מאת nativebreed·
Add expiration dates and lifecycle actions to posts, pages, and public custom post types.
גרסה
1.0.0
עודכן לאחרונה
Jun 3, 2026
Creotec Content Expiration Manager

Creotec Content Expiration Manager adds simple content lifecycle management to WordPress:

  • Add an expiration date/time to posts, pages, and public custom post types.
  • Choose what happens when content expires:
    • Change status to Draft
    • Make Private/Password Protect (unpublish)
    • Redirect to another URL (301 or 302)
    • Replace content with a custom "expired" message
    • Display an "Expired" banner at the top of the post
    • Move content to the bin/trash
  • Optional pre-expiration reminder email to the site admin address.
  • Reliable processing:
    • Runs on WP-Cron every 10 minutes
    • Includes a lightweight fallback check on normal WordPress requests (throttled)
  • Admin overview page:
    • Expiring Soon (next 30 days)
    • Already Expired
    • Bulk actions (extend date, disable expiration)
  • Reusable templates for redirect, banner, and replacement-content actions.
  • Per-post-type enabling/disabling under Settings > Post Expiration.
  • List-table indicator icons show which posts have expiration enabled.

No external services, no analytics, no licensing system.

Usage

  1. Edit any supported post type.
  2. In the "Expiration" box:
    • Check "Enable expiration".
    • Set an "Expiration date & time" (site timezone).
    • Optionally choose a reminder email (1/3/7 days before).
    • Choose what happens when it expires.
  3. Update/publish the post.

To manage expirations site-wide: * Go to WP Admin > Expirations * Use tabs: * Expiring Soon (next 30 days) * Already Expired * Use bulk actions: * Extend by 7 days * Extend by 30 days * Disable expiration

To choose which post types support expiration: * Go to Settings > Expirations.

To create reusable expiration templates: * Go to Settings > Expirations. * Create templates for redirects, banners, or replacement content. * When editing a post, choose a template in the relevant expiration action. Template edits are reflected anywhere that template is selected.

Restore original content (Replace action)

When the action is "Replace content with a message", the plugin saves the original content when the expiration is processed. After that, a "Restore original content" button appears in the Expiration meta box, allowing you to restore the saved content and disable expiration for that item.

Expiration processing & reliability

This plugin does not rely solely on WP-Cron.

  • Primary: WP-Cron runs every 10 minutes to process reminders and expirations.
  • Fallback: A lightweight check runs on WordPress requests (throttled via transient) to ensure expirations still trigger even if cron is delayed.

Notes about caching: * Some full-page caches may serve pages without executing PHP. In those cases, expirations will still process when WordPress runs (admin requests, REST requests, cron, etc.). * On expiration, the plugin triggers an action hook so caching plugins/site code can purge caches: do_action( 'creocem_post_expired', $post_id, $action );

Hooks

  • creocem_post_expired – Fires after a post is processed as expired.
    • Parameters: (int) $post_id, (string) $action

License

This plugin is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.

This plugin is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Credits

Developed and maintained by Michael Gbadebo @ Creotec Limited.

חינםבתוכניות בתשלום
בביצוע ההתקנה, אנחנו מקבלים את הסכמתך לתנאי השירות של WordPress.com ולתנאים של התוסף של הצד השלישי.
נבדקו עד
WordPress 7.0
תוסף זה זמין להורדה ולשימוש דרך שברשותך.