バグ報告で投稿してきますか・・・
なんどかこのフォーラムでも話がでています。
http://ja.forums.wordpress.org/topic/4395?replies=12
http://ja.forums.wordpress.org/topic/4884?replies=13
http://ja.forums.wordpress.org/topic/2440?replies=10
date_default_timezone_set('Asia/Tokyo');
をwp-config.php とか、テーマの functions.phpに書くか、current_time( 'timestamp' );
などのように取得するかではないですか。
それでも納得がいきませんかね?
shokun0803さん、こんにちは。
> date_default_timezone_set(‘Asia/Tokyo’);をwp-config.php とか、テーマの
> functions.phpに書くか、current_time( ‘timestamp’ );などのように取得するか
> ではないですか。
wp-config.phpに書いても、そのあとにwp-settigs.phpが読み込まれるので効果はないです。
テーマのfunctions.phpなら効果はあるようですね。
これは思いつきませんでした。(恥)
ただし、この方法だと国際化したテーマの作者は、「functions.phpにdate_default_timezone_set(…)を追記するか子テーマをつくってね。」とアナウンスする必要があるということになりません?
それに、この方法で変更していいのなら、最初からwp-settings.phpの、
date_default_timezone_set('UTC');
のところに管理画面のタイムゾーン設定が反映されるようにコアを修正してくれればいいと思うのですが。。。
それをあえてそうしないのは他に影響があるのではないかと思うのですが、どうでしょう?
だから、安易にdate_default_timezone_set()するのは正しいのかな?と疑問を感じます。
ちなみにcurrent_time()は今の時間を取る関数なので、RSS内の日付やファイルの更新日の処理などには関係ないです。
> バグ報告で投稿してきますか・・・
以上のような理由で、バグっぽいなと思ったので、ここに書きました。
管理画面に設定する画面があって、それだけでは上手く反映されないので。。。
> それでも納得がいきませんかね?
はい、納得してません(笑)
まあ、リンクした他の記事を見てもらえれば私が納得していないのは明白ですが(笑)
世界中で使用されているWordPressがUTCを基準として動作させ、多言語化されたプラグインでも不具合なく動かすことが目的であろうと、言いたいことは分かりますけどね。
いっそのことインターネットタイムでも使えば?なんて皮肉ってみたり・・・
どうやらチケットは切られたものの、仕様として現在に至るようなので、どうしてもと言うなら新たにtracで報告するしかないのかもしれません。もちろん英語ですが。
ここのバグ報告は日本語翻訳などの間違いなどはすぐに反映してもらえますが、コアのバグ(と思われる箇所)に関しては誰かが公式に報告しない限り反映はしないと思いますよ;)
すいません。
自己解決します。
1) date_default_timezone_set()を書いてしまうのはダメっぽいと個人的に判断しました。
チケットでもパッチがボツになっていますし。
https://core.trac.wordpress.org/ticket/11665
多言語対応したテーマやプラグインに影響が出るのかな?(関係ないような気がするけど。。。)
2) RSSウィジェットの日付がずれる件に関しては、自作プラグインで対処できることがわかったので、それを使用しつつも、本家のチケットにパッチを報告してみます。
3)プラグイン開発などでは、外部リソースから取得した日付データに関しては、3600*get_option(‘gmt_offset’)を足すようにするしか無さそうなので、そうします。
(コアでもそういう処理をしているところが多数ありましたので。)
というわけで、shokun0803さん、ありがとうございました。