Title: Self Destructing Posts
Author: Gary Kovar
Published: <strong>Ògún  10, 2026</strong>
Last modified: Ògún  22, 2026

---

Ṣàwárí àwọn plugin

![](https://ps.w.org/self-destructing-posts/assets/banner-772x250.png?rev=3640737)

![](https://ps.w.org/self-destructing-posts/assets/icon-256x256.png?rev=3640737)

# Self Destructing Posts

 Láti ọwọ́ [Gary Kovar](https://profiles.wordpress.org/binarygary/)

[Ṣe ìgbàsílẹ̀](https://downloads.wordpress.org/plugin/self-destructing-posts.1.0.1.zip)

 * [Àwọn àlàyé](https://yor.wordpress.org/plugins/self-destructing-posts/#description)
 * [Àwọn àgbéyẹ̀wò](https://yor.wordpress.org/plugins/self-destructing-posts/#reviews)
 *  [Ìgbéwọlẹ̀](https://yor.wordpress.org/plugins/self-destructing-posts/#installation)
 * [Ìdàgbàsókè](https://yor.wordpress.org/plugins/self-destructing-posts/#developers)

 [Ìrànlọ́wọ́](https://wordpress.org/support/plugin/self-destructing-posts/)

## Àpèjúwe

**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Ìtumọ̀ Yorùbá: ’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.

## Àwọn àwòrán ìbòjú

[⌊The Self-Destruct panel in the block editor.⌉⌊The Self-Destruct panel in the block
editor.⌉[

The Self-Destruct panel in the block editor.

[⌊The posts-list status column.⌉⌊The posts-list status column.⌉[

The posts-list status column.

[⌊The settings screen with the emergency pause.⌉⌊The settings screen with the emergency
pause.⌉[

The settings screen with the emergency pause.

## Ìgbéwọlẹ̀

 1. Upload the `self-destructing-posts` folder to `/wp-content/plugins/`, or install
    through the Plugins screen.
 2. Activate the plugin.
 3. Open a post, expand the **Self-Destruct** panel in the editor sidebar, and switch
    on **Enable self-destruct**.
 4. Choose your trigger, grace period, action, and destroyed-URL behavior, then publish.
 5. Review site-wide defaults and the emergency pause under **Settings  Self-Destruct**.

For reliable timing on low-traffic sites, configure a real server cron to run `wp-
cron.php`.

## FAQ

### Is this secure or private?

No. This is a content-lifecycle tool. It cannot stop screenshots, copies, caches,
or someone re-sharing the URL. Do not use it to protect secrets.

### When does the countdown start?

When a reader _qualifies_ (a genuine reading event), not when you publish. The grace
period runs from that moment.

### What counts as a “qualified read”?

A public visitor loads the post, a small script confirms the page was visible for
at least a few seconds, and the browser returns a signed, single-use token. Admins/
editors, bots, previews, prefetches, feeds, and REST requests do not qualify.

### What happens after a post is destroyed?

Future visitors get the response you chose — 410 Gone by default. The plugin keeps
a minimal route record so it can serve that response even if the post was permanently
deleted.

### Do global settings or per-post settings win?

Per-post settings always override the site-wide defaults under Settings  Self-Destruct.
The global values are the starting point for new posts (grace period, action, destroyed
behavior, redirect URL, message) and the site-wide exempt roles. The master “enabled
site-wide” switch is a kill switch: when off, no post is gated, armed, or destroyed.

### Can I stop a destruction?

Yes. Disarm an armed post from the posts list, or flip the site-wide **Emergency
pause** under Settings  Self-Destruct.

## Àwọn àgbéyẹ̀wò

Kò sí àwọn àgbéyẹ̀wò fún plugin yìí.

## Àwọn Olùkópa & Olùgbéejáde

“Self Destructing Posts” jẹ́ ètò ìṣàmúlò orísun ṣíṣí sílẹ̀. Àwọn ènìyàn wọ̀nyí ti
ṣe ìkópa sí plugin yìí.

Àwọn Olùkópa

 *   [ Gary Kovar ](https://profiles.wordpress.org/binarygary/)

[Túmọ̀ “Self Destructing Posts” sí èdè rẹ.](https://translate.wordpress.org/projects/wp-plugins/self-destructing-posts)

### Ṣe o nífẹ̀ẹ́ sí ìdàgbàsókè?

[Ṣàwárí koodu](https://plugins.trac.wordpress.org/browser/self-destructing-posts/),
ṣàyẹ̀wò [ibi ìpamọ́ SVN](https://plugins.svn.wordpress.org/self-destructing-posts/),
tàbí ṣe àgbékalẹ̀ sí [àkọsílẹ̀ ìdàgbàsókè](https://plugins.trac.wordpress.org/log/self-destructing-posts/)
nípasẹ̀ [RSS](https://plugins.trac.wordpress.org/log/self-destructing-posts/?limit=100&mode=stop_on_copy&format=rss).

## Àkọsílẹ̀ àwọn àyípadà

#### 1.0.1

 * Fixed: on a site using plain permalinks (?p=123), destroying a post recorded 
   the site homepage as the destroyed URL, so the front page began returning “410
   Gone” — which also asks search engines to remove it. Plain permalinks now keep
   the post identifier, and the homepage can never be treated as destroyed content.
 * Fixed: the per-post “Exempt roles” setting was silently discarded — the field
   failed to register, so choices made in the editor were never saved. Site-wide
   exempt roles were unaffected.
 * Tested up to WordPress 7.1.

#### 1.0.0

 * First public release on WordPress.org. The plugin code is unchanged from 0.1.2—
   the version marks readiness for general use, not new features. Earlier 0.1.x 
   versions were development releases and were never published here.

#### 0.1.2

 * Fixed the internal codename showing in two labels — the classic-editor checkbox
   and the posts-list bulk actions now read “Enable/Disable self-destruct”. No behavior
   change.

#### 0.1.1

 * Raised minimum requirements to WordPress 6.6 and PHP 8.2.
 * Renamed the main plugin file to match the directory slug.
 * Removed unused internal code (an unwired state-transition validator) and tidied
   module exports. No behavior change.

#### 0.1.0

 * Initial development release: editor panel, first-qualified-read arming, grace
   period, Trash/Draft/410 actions, no-cache/noindex headers, atomic arming, scheduled-
   destruction repair, minimal audit log.

## Àkójọpọ̀ Meta

 *  Ẹ̀yà **1.0.1**
 *  Ìgbàgbọ́hùn tó kẹ́yìn **ọ̀sẹ̀ 3 sẹ́yìn**
 *  Àwọn ìgbéwọlẹ̀ tó ṣiṣẹ́ **Tó kéré sí 10**
 *  Ẹ̀yà WordPress ** 6.6 tàbí ju bẹ́ẹ̀ lọ **
 *  Dánwò dé **7.1**
 *  Ẹ̀yà PHP ** 8.2 tàbí ju bẹ́ẹ̀ lọ **
 *  Èdè
 * [English (US)](https://wordpress.org/plugins/self-destructing-posts/)
 * Àwọn àmì
 * [expire](https://yor.wordpress.org/plugins/tags/expire/)[privacy](https://yor.wordpress.org/plugins/tags/privacy/)
 *  [Ìwòye Tó Péye](https://yor.wordpress.org/plugins/self-destructing-posts/advanced/)

## Àwọn ìbò

Kò sí ìwádìí tí a tíì fi ránṣẹ́.

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

[Wo gbogbo àwọn àgbéyẹ̀wò](https://wordpress.org/support/plugin/self-destructing-posts/reviews/)

## Àwọn Olùkópa

 *   [ Gary Kovar ](https://profiles.wordpress.org/binarygary/)

## Ìrànlọ́wọ́

Nǹkan wà tí o fẹ́ sọ? Ṣé o nílò ìrànlọ́wọ́?

 [Wo àpéjọ ìrànlọ́wọ́](https://wordpress.org/support/plugin/self-destructing-posts/)