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

Почему откладывать подачу в WordPress?
Иногда в статье может быть грамматическая или орфографическая ошибка. Ошибка становится активной и распространяется среди ваших подписчиков RSS-канала. Если у вас есть подписка по электронной почте в вашем блоге WordPress, то эти подписчики также получат ее.

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

Задерживая статью в ленте, вы можете дать поисковым системам достаточно времени для сканирования и индексации вашего контента.
Сказав это, давайте посмотрим, как легко отложить появление сообщений в RSS-потоке WordPress.
Задержка публикаций в RSS-потоке WordPress
Этот метод требует, чтобы вы добавили немного кода в WordPress. Если вы добавляете код вручную впервые, ознакомьтесь с нашим руководством для начинающих по вставке фрагментов из Интернета в WordPress.
Вам необходимо добавить следующий код в файл functions.php вашей темы или в плагин для конкретного сайта.
<?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 минут в качестве времени ожидания или задержки. Не стесняйтесь изменить это на любое количество минут, которое хотите. Например, 60 за 1 час или 120 за два часа.
Мы надеемся, что эта статья помогла вам узнать, как легко отложить публикацию сообщений в RSS-потоке WordPress. Вы также можете ознакомиться с нашим руководством о том, как показывать контент только подписчикам RSS в WordPress.