他のとあるサイトで、Wordpressが出力しているRSSを静的なHTMLページで表示させていたところ、いつの間にか日付表示部分が「1970/1/1」となっていました。あれ?何時の間に・・と思い、調べていると、利用していたMagpieRSSがRSS2.0に対応していないために起こるバグだったようです。
その対応策を探していると、以下のサイトでまさにその方法が紹介されていましたので、引用文となりますが、当サイトでも紹介しておきます。
日付が1970/1/1になってしまう場合
WordPressのブログの新着で、以前は大丈夫だったのに、あるときから日付が1970/1/1になってしまい困っいましたが、修正方法がわかったので追記します。
ここで紹介したスクリプト MagpieRSSは、RSS2.0に対応してないためにUNIXタイムスタンプ(1970/1/1からの積算秒数)がそのまま出てしまいます。
ということで、応急処置ですが$itemdayを下記に変更してください。$itemday = date(‘Y/n/j’,strtotime(substr($item[‘dc’][‘date’],0,10)));
↑こちらが配布されているサンプルソース
$itemday = date(‘Y/m/d H:i’,strtotime($item[‘pubdate’]));
↑これがRSS2.0用です。
WordPressと静的ページを共存させているサイトも多いと思いますが、パターンとして考えられるものの一つに、TOPページを含めたコンテンツはHTMLで作っているが、ブログだけはWordpressを利用しているという場合。この場合だと、TOPページの新着部分に、自分が書いたブログやニュースを自動的に表示させたいと考えることがあると思います。
その場合に利用すると便利なのが、今回ネタにした「MagpieRSS」です。WordpressのRSSだけでなく、Movable Typeや無料ブログ等のRSSを引っ張ってきて、表示させることができるので、非常に重宝している便利なプログラムです。
機会があれば当ページでも、詳しい設置の仕方を紹介したいと思います。
参考:MagpieRSS – PHP で使える RSS パーサー
http://www.hyuki.com/yukiwiki/wiki.cgi?MagpieRSS