Как публиковать RSS фид (ленту) с отсрочкой и возможна ли задержка при выводе rss ленты?
Этот вопрос волнует многих владельцев сайтов имеющих RSS ленту. Действительно, очень часто, бывает необходимо опубликовать свой фид немного с задержкой.
Для чего это надо?
Ну во первых хотя бы для того, что бы успеть нормально оценить и при необходимости подправить статью.
Ведь даже если публикация происходит из черновика, то всё равно после того, как будет нажата кнопка «Опубликовать» может возникнуть потребность корректировки статьи. Без условно, что правки можно делать сколько угодно и когда угодно, но только на своём сайте.
После публикации, статья практически мгновенно улетает в фид и сразу же отображается в RSS ленте. А в самой ленте уже ничего поменять невозможно, как есть так и есть..
Поэтому задержка при выводе rss ленты в этом случае будет более чем уместна.
Оптимальный срок задержки публикации составляет от 10 до 60 минут. За это время можно абсолютно спокойно оценить статью и исправить все недочёты.
Хотя возможна задержка при выводе rss ленты и на более длительный срок. Например на сутки, или даже неделю.
Это может быть полезно в случае, если у вас настроен автоматический кроспостинг во многое социальные сети и необходимо что бы статья сначала проиндексировалысь на вашем сайте а уже потом «засветилась» на других сайтах.
В любом случае большая или маленькая задержка при выводе
Как же отложить публикацию фида на необходимое время?
В WordPress это реализовать возможно путём редактирования файла functions.php
Его легко найти в теме вашего сайта.
В низу файла functions.php вставляем этот код:
/**
* puplish the content in the feed later
* $where ist default-var in WordPress (wp-includes/query.php)
* This function an a SQL-syntax
*/
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');
В строке $wait = ‘10′; // integer цифра 10 означает количество минут задержка при выводе
Вы просто меняете этот параметр и ставите необходимое вам время.
Окажите посильную помощь нашему сайту ↓

Здравствуйте! Подскажите как включить в rss ленту наряду с постами одну конкретную страницу на постоянной основе?