web-dev-qa-db-ja.com

RSSフィードから公開日<pubDate>を削除する方法

私のコンテンツはすべて常緑樹なので、テーマから日付を削除しました。サイト上の訪問者や検索エンジンのクローラには、日付は表示されません。

しかし、私のRSSフィードでは<pubDate></pubDate>行を使って日付を見ることができます。フィードからこれを削除する方法はありますか。理想的には、この変更をテーマ固有のものにするためにfunctions.phpファイルに追加できるフックまたはフィルタを通して。

3
Richard S.

rss2 フィードから<pubDate>タグを削除すると、無効になります。

だからあなたはそれをしたくない!

空の場合

<pubDate></pubDate> 

その場合、フィードはまだ検証されません。

> pubDate must be an RFC-822 date-time

だからそれも選択肢ではないでしょう。

あなたがそれを静的にしたいなら、すべてのアイテムのために、あなたはそれを使うことができます例えば:

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

必要に応じて静的な値を変更できます。

atom フィードについても同様です。

atom feedには、get_post_modified_time()の値である<updated>タグもあります。

これが例です:

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

異なる時間形式にも注意してください。

2
birgire