Как добавить задержку появления записей в RSS ленте WordPress

Недавно один из наших читателей спросил, возможно ли задержать записи от появления их в RSS ленте WordPress. Задержка появления записей в ленте может помочь вам при случайной публикации материала и в борьбе с ворами контента. В сегодняшней статье мы покажем вам как задержать появление записи в RSS ленте WordPress.

delayfeedposts[1]

Зачем задерживать публикацию ленты в WordPress?

Иногда, при написании материала, вы можете допустить грамматическую или орфографическую ошибку. Эта ошибка появится на сайте и уйдет в RSS ленту вашим подписчикам. Если у вас на сайте есть email-рассылка, тогда и эти подписчики заметят ее.

writingmistakes[1]

Добавляя задержку между публикацией RSS ленты и материалом на вашем сайте, у вас будет немного времени, чтобы отловить ошибку на сайте и исправить ее.

Также RSS ленты используются сайтами, ворующими контент. Они мониторят ваши материалы и копируют записи как только они публикуются.

Если у вас новый сайт с небольшим весом, то многократное копирование контента может привести к выпадению из результатов поиска.

contentscrapers[1]

Добавив задержку публикации статьи в ленту, вы сможете предоставить поисковым системам достаточно времени для индексации вашего сайта как первоисточника.

Давайте же посмотрим как легко добавить задержку от появления записей в RSS ленте WordPress.

Задержка публикации статей в RSS ленте WordPress

Этот способ предполагает добавление небольшого кода в WordPress.

Потребуется вставить код в файл functions.php вашей темы или в плагин для сайта WordPress:

function publish_later_on_feed($where) {

	global $wpdb;

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

		// значение задержки; + 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

		// добавляем SQL-синтакс к дефолтному $where
		$where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait ";
	}
	return $where;
}

add_filter('posts_where', 'publish_later_on_feed');

Этот код проверяет, запрошена ли лента WordPress. После этого он устанавливает текущее время и время, которое нужно добавить в качестве задержки между оригинальной датой записи и текущим временем.

В примере мы добавили задержку в 10 минут. Можно менять это значение на свое усмотрение. К примеру, 60 — это 1 час, а 120 — задержка в 2 часа.

Мы надеемся, что эта статья помогла вам научиться добавлять задержку появления записей в RSS ленте WordPress.

По всем вопросам и отзывам просьба писать в комментарии ниже.

Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
Scroll To Top