Counterize II

特に要らないものになってしまったけど、まだ付けている。
このカウンタの 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);
}

も効果なし。




コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA