• Добрый день.

    Уже достаточно долгое время пытаюсь настроить задержку появления новых постов в RSS. На многих сайтах предлагают использовать подобный код в functions.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 = '5'; // 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');

    По идее, данный код должен выдавать пост в ленту с задержкой в 5 минут. Однако этого не происходит (опробовал на 2-х сайтах, пытался устанавливать различное время в минутах, часах или днях). При добавлении подобного кода новые посты вообще не попадают в RSS.

    Данный функционал реализован в некоторых плагинах, однако мне хотелось бы найти решение без их использования. Используется редирект на Feedburner (http://feeds.feedburner.com/alan-def), Cron не модифицирован. Буду признателен за помощь.

Просмотр 1 ответа (всего 1)
  • Попробуйте, вероятно поможет

    function wikicms_posts_to_feed_with_pause( $where = '' ) {
        if ( is_feed() )
            $where .= " AND post_date < '" . date('Y-m-d H:i:s', strtotime('-5 minutes')) . "'"; //задержка на 5 минут
    
        return $where;
    }
    add_filter( 'posts_where', 'wikicms_posts_to_feed_with_pause' );

    На многих сайтах предлагают использовать подобный код в functions.php

    Предлагаю пользоваться официальной документацией http://codex.wordpress.org/Class_Reference/WP_Query#Time_Parameters 🙂

Просмотр 1 ответа (всего 1)
  • Тема «Вывод RSS с задержкой» закрыта для новых ответов.