web-dev-qa-db-fra.com

Comment supprimer la date de publication <pubDate> du flux RSS

J'ai supprimé les dates de mon thème car tout mon contenu est à feuilles persistantes. Les dates ne sont pas visibles pour les visiteurs ou les robots des moteurs de recherche sur le site.

Mais les gens peuvent toujours voir les dates dans mon flux RSS avec la ligne <pubDate></pubDate>. Est-il possible de supprimer cette information de mon flux? Idéalement, utilisez un crochet ou un filtre que je peux ajouter dans mon fichier functions.php pour que cette modification reste spécifique au thème.

3
Richard S.

Notez que si vous supprimez la balise <pubDate> du fichier rss2 feed, elle ne sera plus valide.

Donc, vous ne voulez pas faire ça!

Si c'est vide:

<pubDate></pubDate> 

alors le flux ne sera toujours pas validé:

> pubDate must be an RFC-822 date-time

Donc, ce ne serait pas une option non plus.

Si vous le souhaitez, pour tous les éléments, vous pouvez utiliser, par exemple:

add_filter( 'get_post_time', 'wpse_static_rss2_feed_time', 10, 3 ); 

function wpse_static_rss2_feed_time( $time, $d, $gmt )
{
    if( did_action( 'rss2_head' ) )
        $time = 'Thu, 01 Jan 1970 00:00:00 +0000';
    return $time;
}

où vous pouvez modifier la valeur statique en fonction de vos besoins.

Une action similaire peut être effectuée pour le atome feed.

Notez que atom feed a aussi la balise <updated> qui obtient sa valeur depuis get_post_modified_time():

Voici un exemple:

add_filter( 'get_post_time',          'wpse_static_atom_feed_time', 10, 3 ); 
add_filter( 'get_post_modified_time', 'wpse_static_atom_feed_time', 10, 3 ); 

function wpse_static_atom_feed_time( $time, $d, $gmt )
{
    if( did_action( 'atom_head' ) )
        $time = '1970-01-01T00:00:00Z';
    return $time;
}

Notez également le format d'heure différent.

2
birgire