You are here:  Home » PHP » 如何延迟WordPress RSS Feed中出现的帖子

最近,我们的一位读者询问是否有可能推迟出现在WordPress RSS Feed中的帖子延迟RSS Feed中的帖子可以避免意外发布并在SEO中击败内容抓取工具。在本文中,我们将向您展示如何延迟发布WordPress RSS提要中的帖子。

How to Delay Posts From Appearing in WordPress RSS Feed

为什么在WordPress中延迟Feed?

有时你的文章可能会出现语法或拼写错误。错误发生并分发给您的RSS订阅者。如果您的WordPress博客上有电子邮件订阅,那么这些订阅者也会获得它。

Spelling mistakes go live to your RSS feed subscribers

通过在RSS源和您的实时站点之间添加延迟,您可以获得一个时间窗口来捕获实时站点上的错误并进行修复。

RSS源也被内容使用抓网站。他们使用它来监控您的内容,并在它们显示后立即复制您的帖子。

如果你有一个没有权限的新网站,那么很多时候这些内容抓取工具最终可能会在搜索结果中击败你。

Content scrapers use RSS feeds to auto-publish your posts

通过延迟Feed中的文章,您可以为搜索引擎提供足够的时间来抓取您的内容并将其编入索引。

话虽如此,让我们看看如何轻松延迟帖子出现在WordPress RSS feed中。

在WordPress中延迟帖子RSS Feed

此方法要求您添加少量代码进入WordPress。如果这是您第一次手动添加代码,请查看我们的初学者指南,将网页上的代码段粘贴到WordPress中。

您需要将以下代码添加到主题的functions.php文件或特定于站点的插件中。

function publish_later_on_feed($where) {

	global $wpdb;

	if ( is_feed() ) {
		// timestamp in WP-format
		$now = gmdate("Y-m-d H:i:s");

		// value for wait; + device
		$wait = "10"; // integer

		// http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff
		$device = "MINUTE"; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR

		// add SQL-sytax to default $where
		$where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, "$now") > $wait ";
	}
	return $where;
}

add_filter("posts_where", "publish_later_on_feed");

代码检查是否请求了WordPress订阅源。之后,它将当前时间和您想要添加的时间设置为帖子的原始日期和当前时间之间的延迟

之后,它将时间戳差异作为WHERE子句添加到原始查询。原始查询现在只返回时间戳差异大于等待时间的帖子。

在此代码中,我们使用10分钟作为$ wait或延迟时间。随意将其更改为您想要的任意分钟数。例如,60小时1小时或120小时2小时。

我们希望本文能帮助您了解如何轻松延迟WordPress RSS Feed中的帖子。您可能还希望看到有关如何仅向WordPress中的RSS订阅者显示内容的指南。

评论被关闭。