Counterize II カウンタ更新時刻が9時間ずれる

LINEで送る
Pocket

「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側が直さない限りアップデートしなければいいので。

コメントを残す

メールアドレスが公開されることはありません。