To delay a post in a WordPress RSS feed, either schedule the post for later publication or filter the feed query so the post stays live on your site but is withheld from feeds until a cutoff time. Scheduling is built in and delays publication everywhere; a feed-only delay requires a small PHP customization and testing.
Choose whether the delay applies to the whole site or only to feeds
| Method | What it delays | Code required | Best fit |
|---|---|---|---|
| Schedule the post | Publication on the site and in feeds | No | The post should not be public before its release time |
| Filter the feed query | Inclusion in generated feeds only | Yes | The post should be live on the site before it appears in RSS |
WordPress uses standard posts to create RSS feeds, which normally list the newest posts first. Its built-in reading settings control the number of feed items and whether feeds contain summaries or full content; they do not provide a per-post delay option. WordPress documents its built-in feeds, and describes posts as being used to create RSS feeds.
Option 1: Schedule the post for later publication
Use scheduling when the post should remain unpublished across the site until its release time. WordPress supports future-dated posts through its post status and publication date, including through the REST API. The REST API reference for posts documents these fields.
- In the post editor, open the publishing or status settings and change the publication date and time to the intended release time.
- Schedule the post rather than publishing it immediately.
- Confirm the post is marked as scheduled and verify its public page and feed after the scheduled time.
This approach needs no custom code, but the post is not available on the public site while it is scheduled.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallOutdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchOption 2: Delay feed inclusion while leaving the post live
For a feed-only delay, add a date condition to the main feed query. The following is a conceptual implementation for a six-hour delay: it excludes feed posts newer than the cutoff, using the post’s GMT publication date. It is a synthesis of WordPress’s documented query features, not a WordPress-provided setting or guaranteed drop-in plugin.
add_action( 'pre_get_posts', function ( $query ) {
if ( is_admin() || ! $query->is_feed() || ! $query->is_main_query() ) {
return;
}
$delay_hours = 6;
$cutoff = gmdate( 'Y-m-d H:i:s', time() - ( $delay_hours * HOUR_IN_SECONDS ) );
$query->set( 'date_query', array(
array(
'column' => 'post_date_gmt',
'before' => $cutoff,
'inclusive' => true,
),
) );
} );
Place customized code in a site-specific plugin or another maintainable location, not in a theme file that may be overwritten during an update. Adjust $delay_hours to the intended window. The feed query remains the gate: a post is eligible after it is older than the cutoff, but that does not guarantee when a particular subscriber receives it.
Rank #2
WP_Query documentation describes date-based query parameters. For more specialized changes, WordPress provides the posts_where hook for WHERE clauses and posts_clauses for modifying multiple query clauses. A retrieval path that suppresses filters may bypass such changes, so confirm the actual feed query and any caching layers.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Why changing RSS update frequency is not a delay
The rss_update_period filter changes the update-period metadata advertised in the feed; it does not hold back individual posts. WordPress lists hourly, daily, weekly, monthly, and yearly values for this metadata. Feed readers and aggregators decide how often to poll and may cache results, so changing the advertised period cannot enforce a delivery schedule. See the official rss_update_period reference.
Quick Recap
Best Value
Rank #4
Test the feed delay before relying on it
- On a staging site, publish a test post and note its publication time in UTC.
- If you are using a feed-only filter, confirm the post is visible at its normal permalink.
- Request the public RSS feed and confirm the post is absent before the cutoff.
- Request the feed again after the cutoff and check that the post appears with the expected publication date.
- Purge or bypass page, feed, and CDN caches while testing; cached XML can otherwise conceal whether the query has changed.
- Check any category, author, or custom post-type feeds your site exposes, rather than assuming the main feed is the only endpoint affected.
Common risks and how to limit them
- Unintended query changes: A filter that is not limited to feed requests and the main query can affect archives or other pages. Keep the scope checks in place and test affected views.
- Cache masking: A cached feed may still show an old version after the cutoff or code change. Purge relevant caches during verification.
- Subscriber timing: The cutoff controls when WordPress can include an item in the generated feed, not when every subscriber sees it. Readers poll at different intervals and can cache feed responses.
- Feed coverage: Sites may expose several feed endpoints. Verify the endpoints your audience actually uses, including category, author, and custom post-type feeds.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

