Retrasar la publicación de RSS en WordPress es más sencillo de lo que parece. ¿A quién no le ha pasado que se publica una entrada y ya es demasiado tarde para corregirla porque el feed RSS ya se ha lanzado con los errores? ¿O se ha encontrado con problemas de contenido duplicado por este error?
Para solucionar este tema lo que hay que hacer es retrasar la publicación añadiendo el pequeño fragmento de código que muestro a continuación en nuestro archivo functions.php de WordPress. Este archivo se encuentra en la ruta:
/wp-content/themes/[Nombre de Vuestro Tema]/functions.php
Código para restrasar la publicación del Feed
function retrasar_feed($where) { global $wpdb; if ( is_feed() ) { $now = gmdate('Y-m-d H:i:s'); $wait = '10'; $device = 'MINUTE'; $where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait "; } return $where; } add_filter('posts_where', 'retrasar_feed');
Este código lo que hace tal y como está es restrasar 10 minutos la difusión de nuestro Feed RSS. Si queréis cambiar este tiempo lo podéis hacer a través de la variable $wait, y si créis que aun así es poco podéis editar la variable $device con los campos HOUR, DAY, WEEK, MONTH, YEAR. Aquí os dejo más información sobre la función timestampdiff().
Consejos de configuración para conseguir el retraso
Poner el lapso que consideréis para que os pueda dar tiempo de revisar vuestra entrada y que el RSS no se difunda con errores. Y además que este sea un tiempo prudencial para que se publique primero la entrada y luego el feed para que no hayan problemas de contenido duplicado (a veces puede pasar). Tratándose de WordPress y sabiendo los rápidos que van los bots de Google últimamente, un tiempo de 5 a 10 minutos de retraso es suficiente para que los bots indexen nuestro contenido antes que el feed (a menos que lo tengamos el feed de las entradas bloqueado con el robots.txt).