Как задержать посты от появления в RSS фидах WordPress
Задержка постов в RSS фиде может спасти вас от случайных публикаций и помочь справиться со скраперами контента. В этой статье вы узнаете как задержать посты от их появления в RSS фиде.
Зачем задерживать посты в RSS фиде?
Иногда в ваш пост может закрасться грамматическая или смысловая ошибка и это сразу же увидят ваши подписчики в RSS.
Создав задержку между появлением вашего контента на сайте и его появлением в RSS фиде, вы можете выиграть немного времени, чтобы найти незамеченную ошибку и исправить ее. Также RSS фиды популярны среди сайтов, ворующих контент. Если у вашего ресурса невысокий авторитет в глазах поисковиков, то сайты-грабители могут выбить ваше место в поисковой выдаче. Сделав паузу между появлением вашего поста в фиде, вы даете поисковикам достаточно времени, чтобы проиндексировать ваш контент.
Задержка постов в фиде
Вам надо добавить следующий код в файл 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
// https://dev.mysql.com/doc/refman/8.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’);
[/php]
Этот код проверят запрос WordPress фида. После этого он устанавливает текущее время и время, которое вы хотите использовать в качестве задержки между оригинальной датой поста и текущим временем.
После этого там добавляется временную разницу. В этом коде мы использовали 10 минут в качестве времени задержки. Чувствуйте себя свободно, чтобы поменять это число на любое кол-во минут какое хотите. Например, на 60 или 120.
Наша специальность — разработка и поддержка сайтов на WordPress. Контакты для бесплатной консультации — [email protected], +371 29394520
Leave a Reply
Want to join the discussion?Feel free to contribute!