目次

時刻表記

DokuWikiの時刻表記を変えたので、WordPressの表記も変えたくなった。

参考URL
PHPマニュアル 関数 date

WordPressの時刻表記

設定→一般に、日付と時刻の表示フォーマット指定がある。

RSSフィードの時刻表記

How WordPress Produces Feeds
https://codex.wordpress.org/Customizing_Feeds

によると、wp-includes の

がフィード作っていることがわかる。

feed.php の function get_feed_build_date( $format ) が時刻表記を生成している関数なので、その関数のなかの適当なところに

    // Format 'r' -> 'D, d M Y H:i:s O', 'H:i:s' -> '00:00:00'
    if ( strcmp( $format, 'r' ) == 0 )
        $format = 'D, d M Y H:i:s O';
    $format = str_replace('H:i:s', '00:00:00', $format);

というコードを追加する。$format はPHPのdate()関数に渡される引数で、'r'はRFC 2822の形式、すなわち 'D, d M Y H:i:s O' を意味する。

RSS2.0は get_feed_build_date() 介さずに、直接 mysql2date() を呼び出しているので、
feed-rss2.phpfeed-rss2-comments.php の中にある以下の行を

<pubDate><?php echo mysql2date( 'D, d M Y H:i:s +0000', get_post_time( 'Y-m-d H:i:s', true ), false ); ?></pubDate>

このように変更する。

<pubDate><?php echo mysql2date( 'D, d M Y 00:00:00 +0000', get_post_time( 'Y-m-d H:i:s', true ), false ); ?></pubDate>

いずれも H:i:s を 00:00:00 に置き換えているだけだ。

ping

WordPressの更新pingにも当然時刻は含まれている気がするけれど、こちらは単純にpingを停止するだけの対応にとどめておく。