RSSを取得するときに時刻がずれる問題について

WordPress上でRSS取得した日付がずれてしまう。

 

この投稿は技術的検証が不十分です。ご参考にしていただくのは構いませんが、自己責任でお願い致します。

 

割と最近のことです。

私が構築したわけではないのですが、WordPressのサイトのメンテナンスの話です。少しハマってしまいましたので、備忘録的に残しておこうと思います。

ホームページ(コーポレートサイト)はWordPressで構築しているが、ブログは外部のブログサービスを使っているため、トップページの一部のエリアにRSSで読み込んでいるという仕組みのサイトでした。

RSSについて

RSSとは「Really Simple Syndication」、または「Rich Site Summary」の略語※で、Webサイトのニュースやブログなどの、更新情報の日付やタイトル、その内容の要約などを配信するため技術のことです。RSSは、XML形式で記述されており、RSSリーダーと呼ばれるツールを使用することで、様々なサイトの更新情報や新着情報を自動的に取得することができます。

参照元:RSSって何?RSSの仕組みを理解し、RSSリーダー「Feedly」を使ってみよう!


日本では、
元号が「平成」から「令和」に変わったこともあり、「令和」最初のブログを投稿したら、WordPressで表示しているブログの日付が9時間ずれてしまい、「平成」になっていました。

色々調べていくと、RSSを含むWordPressのデータベース以外の外部のリソースから日付を取得して処理する際に、時間がGMTになってしまい9時間ずれてしまうことがあるそうです。

「WordPressのコアファイルを修正します。」という記事も多かったですが、そうすると今後はバージョンアップのときにまた元に戻ってしまう。悩ましいなぁ。

最終的には以下のコードを子テーマのfunctions.phpに記述することで、RSS取得しても日付が正しく表示されるようになりました。

/*
RSSで取得したブログ投稿日付が9時間ずれているので、修正するカスタマイズ
*/
//タイムゾーンが東京になっているか確認する。
if(date_default_timezone_get() != "Asia/Tokyo"){
date_default_timezone_set("Asia/Tokyo"); //そうでない場合にはタイムゾーンを東京に設定
}

 

お問い合わせはこちらから

南大阪を中心に活動しているエンジニアです。これまでの経験から、クライアント様のビジネス課題について一緒になって考え、課題解決のためにサポートさせていただきます。些細なご相談でも構いません。当方に期待することや課題、ご相談内容についてお聞かせください。原則として、24時間以内にご返信致します。