web-dev-qa-db-de.com

So entfernen Sie das Veröffentlichungsdatum <pubDate> aus dem RSS-Feed

Ich habe Datumsangaben aus meinem Thema entfernt, da mein gesamter Inhalt immergrün ist. Die Daten sind für Besucher oder Suchmaschinen-Crawler auf der Website nicht sichtbar.

In meinem RSS-Feed werden jedoch weiterhin Datumsangaben mit der Zeile <pubDate></pubDate> angezeigt. Gibt es eine Möglichkeit, dies aus meinem Feed zu entfernen? Idealerweise über einen Hook oder Filter, den ich in meine Datei functions.php einfügen kann, um diese Änderung themenspezifisch zu halten.

3
Richard S.

Beachten Sie, dass das <pubDate> -Tag ungültig wird, wenn Sie es aus dem rss2 -Feed entfernen.

Das willst du also nicht!

Wenn es leer ist:

<pubDate></pubDate> 

dann wird der Feed immer noch nicht validiert:

> pubDate must be an RFC-822 date-time

Das wäre also auch keine Option.

Wenn Sie möchten, dass es für alle Elemente statisch ist, können Sie z.

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;
}

hier können Sie den statischen Wert an Ihre Bedürfnisse anpassen.

Ähnliches kann für den Atom Feed gemacht werden.

Beachten Sie, dass das atom feed auch das <updated> -Tag hat, das den Wert von get_post_modified_time() erhält:

Hier ist ein Beispiel:

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;
}

Beachten Sie auch das unterschiedliche Zeitformat.

2
birgire