WordPressでセットしたタイムゾーンを取得して外部PHPで使用する方法
WordPressに連携させたプログラムで、外部RSS情報を取得して出力するようなプラグインを作ろうとしてハマってしまったので、ここにメモを残します。
ハマった内容とは、WordPress内で動くテンプレートからAjaxのPHP経由でRSS情報を取得するときに、記事の時間に9時間のズレが生じてしまった。というものでした。
date_default_timezone_set('Asia/Tokyo');
良くある対策方法としては、上記のように動作させるPHP内に date_default_timezone_set でタイムゾーンを設定してやればOKなのですが、せっかくWordPressを使用しているのであれば、ダッシュボードの「設定」→「一般」で設定したタイムゾーンを動的に流用できればと思い、以下のようなコードを組んでみました。
require("./wp-load.php");// WordPress管轄外でもWordPress関数を使えるようにする。 $this_timezone = get_option('timezone_string');// WordPressで設定したタイムゾーンを呼び出す。(文字列) // ↑設定~一般のタイムゾーン項目で「東京」としていれば、「Asia/Tokyo」という文字列が呼び出されます。 date_default_timezone_set($this_timezone);// 呼び出したタイムゾーンの文字列を代入する。
get_option(‘timezone_string’) を使用すると、WordPressの「設定」→「一般」内のタイムゾーンで設定した情報が呼び出されます。
東京とセットしていれば、”Asia/Tokyo” という文字列が呼び出されます。
こうすることで、9時間のずれも解消され、WordPress内のタイムゾーンを変更することで、日本国外でも対応させることが可能になります。
個人的には、国内以外のタイムゾーンを使用するなんてシチュエーションに遭遇することはないと思いますが、メモとして情報をシェアしておきます。
- 2015年6月5日
- WordPress
- コメントはまだありません