特に要らないものになってしまったけど、まだ付けている。
このカウンタの counterize_gethitstoday() は
日付をまたぐ頃におかしくなるので
wp-settings.phpの
date_default_timezone_set(UTC)を
date_default_timezone_set(UTC+9)にしても
WordPressのバージョンアップで上書きされるので放置してた。
でもテーマは滅多にアップデートされないので
修正に丁度良いというのを見つけた。
使っているテーマのfunction.phpに
date_default_timezone_set( ‘Asia/Tokyo’ );
と書くだけ。
でも、上書きされない訳では無いので、
ウィジェットの
counterize_gethitstoday()
の前に
date_default_timezone_set( ‘Asia/Tokyo’ );
と書くことにした。
治るかな?
あ、yesterday: **** は、counterize.php に追記したものだった。
# adds 2013/04/18 # Returns amount of hits yesterday. function counterize_gethitsyesterday() { $today = date("Y-m-d"); $yesterday = date("Y-m-d",strtotime("-1 day")); $sql = "SELECT COUNT(1) FROM ".counterize_logTable()." WHERE timestamp >= '$yesterday' AND timestamp < '$today' "; $wpdb =& $GLOBALS['wpdb']; return $wpdb->get_var($sql); }
あれ?上書きされてない?偶然?
ps.
ウィジェットに
<?php date_default_timezone_set( ‘Asia/Tokyo’ ); ?>
と書いてもダメっぽい。
function counterize_gethitstoday()
{
global $wpdb;
$today = date(“Y-m-d”);
$sql = “SELECT COUNT(1) FROM ” . counterize_logTable() . ” WHERE timestamp >= ‘{$today}'”;
return $wpdb->get_var($sql);
}
のdateの設定が間に合わないらしいので、
テーマのfunction.phpに
date_default_timezone_set( ‘Asia/Tokyo’ );
を書かないと効果が出なかった。
php.iniに
date.timezone = “Asia/Tokyo”
と書いても
wp-settings.phpの
date_default_timezone_set(UTC)で
無駄。
function counterize_gethitstoday() { global $wpdb; //$today = date("Y-m-d"); $today = date("Y-m-d H:i:s"); $today = get_date_from_gmt($today, "Y-m-d"); か $today = get_gmt_from_date($today, "Y-m-d"); $sql = "SELECT COUNT(1) FROM " . counterize_logTable() . " WHERE timestamp >= '{$today}'"; return $wpdb->get_var($sql); }
も効果なし。