DokuWikiの時刻表記を変えたので、WordPressの表記も変えたくなった。
参考URL
PHPマニュアル 関数 date
設定→一般に、日付と時刻の表示フォーマット指定がある。
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.php と feed-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 に置き換えているだけだ。
WordPressの更新pingにも当然時刻は含まれている気がするけれど、こちらは単純にpingを停止するだけの対応にとどめておく。