Comment retarder la mise à jour du flux RSS

Lorsque vous publiez un article il peut s’avérer très pratique de postposer d’une heure la publication de celui-ci dans votre flux RSS et ce pour diverses raisons mais surtout pour l’aspect référencement.

Les premières qui me viennent à l’esprit sont :

  • Garder l’exclusivité de votre contenu pour votre site pour une durée déterminée et éviter tout risque de contenu dupliqué (spoilé) par un site plus influent.
  • Pouvoir corriger les éventuelles fautes d’url, changer le titre, etc… avant qu’il soit diffusé.

Comment retarder la publication d’un billet dans le flux RSS ?

Ajoutez le code suivant à votre fichier functions.php et remplacez 10 par le nombre de minutes, heures, etc… et le type de délai (possibilité de : MINUTE, HOUR, DAY, WEEK, YEAR) (voir http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff)

// Retarder la publication dans le flux RSS
function wpml_delay_publish_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
        $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', 'wpml_delay_publish_on_feed');