Задержка при выводе rss ленты

Как публиковать RSS фид (ленту) с отсрочкой и возможна ли задержка при выводе rss ленты?

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

Для чего это надо?


Ну во первых хотя бы для того, что бы успеть нормально оценить и при необходимости подправить статью.

Ведь даже если публикация происходит из черновика, то всё равно после того, как будет нажата кнопка «Опубликовать» может возникнуть потребность корректировки статьи. Без условно, что правки можно делать сколько угодно и когда угодно, но только на своём сайте.

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

Поэтому задержка при выводе rss ленты в этом случае будет более чем уместна.

Оптимальный срок задержки публикации составляет от 10 до 60 минут. За это время можно абсолютно спокойно оценить статью и исправить все недочёты.

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

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

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


Как же отложить публикацию фида на необходимое время?

В WordPress это реализовать возможно путём редактирования файла functions.php

Его легко найти в теме вашего сайта.

Задержка при выводе rss ленты

В низу файла 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 ленты.

Вы просто меняете этот параметр и ставите необходимое вам время.


Как ускорить интернет

Задержка при выводе rss ленты: 1 комментарий

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *