先日アップデートされた、Wordpress4.7にアップデート後、Google Search Consoleのサイトマップに「無効な日付」のエラーが発生するようになりました。
xmlの方は、問題ないようですが、RSSフィードにエラーがあると気持ち悪いので対策したほうが良いでしょう。
WordPress4.6に戻すのも一つの手ですが、せっかく4.7になったので、なんとかならないか調べてみることにしました。
原因は、RSSフィードに出力されている”lastBuildDate”タグの日付が、日本表記にローカライズされているのが原因のようです。
通常は、ローカライズしない書式で出力しないとダメなのですが・・・。
おそらく、Wordpress4.7.1で修正されると思うのですが、とりあえず改善できたので、対処方法をご紹介します。
無効な日付エラーの対処方法
- FTP等で/wp-includes/feed-rss2.phpをダウンロードし開きます。
- 47行目を以下のように”false”オプションを追記します。
- 変更したファイルをアップロードして、上書きします。
変更前:
echo $date ? mysql2date( 'D, d M Y H:i:s +0000', $date ) : date( 'D, d M Y H:i:s +0000' );
変更後:
echo $date ? mysql2date( 'D, d M Y H:i:s +0000', $date, false ) : date( 'D, d M Y H:i:s +0000' );
以上の手順で、RSSフィードでローカライズされない日付の書式で出力されるようになります。
上記手順は、feed-rss2.phpを修正しましたが、出力しているRSSの形式によって、修正するPHPのファイルが違っていますので、注意してください。
対象のファイルは下記の通りですが、いずれのファイルも「wp-includes」内にあります。
- feed-atom-comment.php
- feed-atom.php
- feed-rdf.php
- feed-rss.php
- feed-rss-comment.php
- feed-rss2.php
- feed.php
また、今回の対処法は、Wordpress1のファイルを直接編集しているため、アップデート等で上書きされてしまいますので、その時は再度修正が必要になります。
次回のWordpressのアップデートで修正されると良いですが、もし修正されなかった時は、また、この作業が必要になると思いますので、覚えておくと良いかもしれません。