Feed配信」タグアーカイブ

WordPress 2.3.3 でフィードの日付がおかしい

コアソースを改変すると、WordPress のアップデートが面倒になります。
以下にコアソースを修正しないでもフィードテンプレートを変更する方法をエントリしてありますので、そちらを参照してください。 (追記: 2009年11月10日)

各種フィード用テンプレートの変更 : dogmap.jp

犬小屋にて – Feed 配信がどうもおかしい。」を読んで気づいたのだが、WordPress 2.3.3 で配信されているフィードの日付がおかしい。
で、ソースを見てみたところ mysql2date() に渡している第1引数がおかしい。
これは、PHP の date() 関数に渡す日付文字列の書式を与えなければならないのだが、Wordpress のソース上では 'D, d M Y H:i:s +0000' となってしまっている。
GMT との時差をセットしたいのであれば 'D, d M Y H:i:s O' (最後はアルファベット大文字のO) にしなければならない。

修正が必要なファイルは wp-includes/feed-rss.php, wp-includes/feed-rss2.php, wp-includes/feed-rss2-comments.php の3ファイル。
修正箇所は、以下の4箇所。
#他にもあるかもですが (^^;;

feed-rss.php(13):	<lastBuildDate><?php echo mysql2date('D, d M Y H:i:s O', get_lastpostmodified(), false); ?></lastBuildDate>
feed-rss2.php(20):	<pubDate><?php echo mysql2date('D, d M Y H:i:s O', get_lastpostmodified(), false); ?></pubDate>
feed-rss2.php(29):	<pubDate><?php echo mysql2date('D, d M Y H:i:s O', get_post_time('Y-m-d H:i:s', false), false); ?></pubDate>
feed-rss2-comments.php(42):	<pubDate><?php echo mysql2date('D, d M Y H:i:s O', get_comment_time('Y-m-d H:i:s', false), false); ?></pubDate>