Self Destructing Posts
·
Mark a post as ephemeral: after it has been read, it self-destructs according to the rules you set on that post.
Self Destructing Posts lets an editor mark a post as ephemeral. Turn on Enable self-destruct, choose how and when the post should disappear, and publish. The first qualified reader opens it, and the post self-destructs after your chosen grace period.
This is a content-lifecycle tool, not a security or secrecy product. It cannot prevent screenshots, copying, browser cache, search-engine indexing, or a recipient sharing the URL. Treat it as “this post is meant to be temporary,” not “this post is secret.”
What it does
- A Self-Destruct panel in the block editor (and a classic-editor meta box) to enable and configure per post.
- First qualified read trigger — a real reading event, not a crawler or link preview.
- A configurable grace period between the qualifying read and destruction.
- Destructive actions: Move to Trash, Draft, Private, Replace with a message, or Permanently delete.
- Destroyed-URL responses: 410 Gone (default), 404, redirect, or a custom message — served even if the post was permanently deleted.
- Atomic arming so exactly one reader arms a post under concurrent traffic.
- No-store cache headers and noindex/nofollow/noarchive on self-destruct posts.
- Exempts administrators/editors, and filters known bots, previews, prefetch, HEAD, REST and feed requests to reduce accidental destruction.
- A repair tool that completes destructions if WP-cron ran late, and an emergency pause that halts all pending destructions.
- A minimal audit log of state transitions that never stores the destroyed post’s content.
What it deliberately does NOT do
- Guarantee secrecy or DRM.
- Prevent screenshots, copy/paste, saved pages, reader mode, or browser history.
- Remove content already cached or indexed by search engines, CDNs, social networks, or browsers.
- Track the identity of individual readers.
An already-cached page cannot be reliably “unread.” Caching is the single biggest practical risk — the plugin sends no-store headers and integrates with common cache plugins on a best-effort basis, but it cannot promise universal cache bypass.
