「Counterize II 時間」でググると出てくる wp-setting.php の「UTC」→「UTC+9」に変更する以下の模範案?なのですが
// Set default timezone in PHP 5. if ( function_exists( 'date_default_timezone_set' ) ) date_default_timezone_set( 'UTC' );
↓
// Set default timezone in PHP 5. if ( function_exists( 'date_default_timezone_set' ) ) date_default_timezone_set( 'UTC+9' );
WPをかじり始めたばかりでまだWPのお作法(慣習)を理解してないのですが、本家がバグとは認識しているかいなかは別にして(チケットは既に上がっているようですが)、そもそも一般的にWPの設計思想においては正しい動きのような気がします。「PHP5ではUTCにしておくよ」的なメッセージがコードにこめられている気がしてならない。
また普通は本体側をゴニョゴニョするより、プラグイン側を弄るのが正しいと思うのは私だけ?しかもCounterize IIのソースはプラグイン編集画面で変更可能ときた。まあ変更箇所はいっぺーなのですが、とりあえず使用している関数のみ以下の対応をしました。
counterizeii/counterize.php を見ますとこんな感じ。
// Returns amount of hits today. function counterize_gethitstoday() { global $wpdb; $today = date("Y-m-d");
↓
// Returns amount of hits today. function counterize_gethitstoday() { global $wpdb; $today = date("Y-m-d", current_time('timestamp'));
このdate()がUTCで時刻を取ってるはずなんで、WP本体側と同じ時刻の取り方「current_time(‘timestamp’)」にするよう変更したほうが正当な修正方法ですかね。もっとよい方法がありそうですが、Counterize II側が本体側と違う時刻の取り方をしているのが原因かと。これなら「設定 > 一般設定 > タイムゾーン」で設定したロケールがちゃんと反映されますし。
counterize.phpには、すでにcounterize_gethitsyesterday()関数を追加してしまいましたし、Counterize II側が直さない限りアップデートしなければいいので。