WordPless に Counterize II を導入してみたけれど、Windows 7 がカウントされていない。
またGoogle ChromeもMac上のSafariとしてカウントされている。
と、いう事に気づいたのでソースを修正してみた。
表示を期待通りにするためには、ソースの修正のほかにもデータベースのテーブル`
wp_Counterize_UserAgents` にすでに記録されているレコードの修正も必要。
Windows 7のレコードは`
name`に'NT 6.1'が含まれるレコードを探して`
osVersion`を'7'に書き換える。
Clomeの方は`
name` に 'Chrome' の含まれるレコードを探して、`
browserName` 、`
browserCode`、`
browserVersion`、`
osName`、`
osCode`、`
osVersion`をそれぞれ書き換えること。
ちなみにうちで見つけた Chrome のUAはこうなってました。
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.70 Safari/533.4
以下ソースの変更点(追加のみ)
ファイル名: browsniff.php
関数: function counterize_detect_browser ($ua)
位置: 170 行目辺り
} elseif (preg_match('#(Firefox|Phoenix|Firebird)/([a-zA-Z0-9.]+)#i', $ua, $matches)) {
$browser_name = 'Mozilla Firefox';
$browser_code = 'firefox';
$browser_ver = $matches[2];
if (preg_match('/Windows/i', $ua)) {
list($os_name, $os_code, $os_ver) = counterize_windows_detect_os($ua);
} else {
list($os_name, $os_code, $os_ver) = counterize_unix_detect_os($ua);
}
// ここから追加
} elseif (preg_match('#Chrome/([a-zA-Z0-9.]+)#i',
$ua, $matches)) {
$browser_name = 'Google Chrome';
$browser_code = 'chrome';
$browser_ver = $matches[2];
if (preg_match('/Windows/i', $ua)) {
list($os_name, $os_code, $os_ver)
= counterize_windows_detect_os($ua);
} else {
list($os_name, $os_code, $os_ver)
= counterize_unix_detect_os($ua);
}
// ここまで
} elseif (preg_match('#Minimo/([a-zA-Z0-9.]+)#i', $ua, $matches)) {
$browser_name = 'Minimo';
$browser_code = 'mozilla';
$browser_ver = $matches[1];
if (preg_match('/Windows/i', $ua)) {
list($os_name, $os_code, $os_ver) = counterize_windows_detect_os($ua);
} else {
list($os_name, $os_code, $os_ver) = counterize_unix_detect_os($ua);
}
関数: function counterize_windows_detect_os ($ua)
位置: 505 行目辺り
} elseif (preg_match('/Windows.98/i', $ua) || preg_match('/Win98/i', $ua)) {
$os_name = "Windows";
$os_code = "windows";
$os_ver = "98";
// ここから追加
} elseif (preg_match('/Windows NT 6.1/i', $ua)) {
$os_name = "Windows";
$os_code = "windows";
$os_ver = "7";
// ここまで
} elseif (preg_match('/Windows NT 6.0/i', $ua)) {
$os_name = "Windows";
$os_code = "windows";
$os_ver = "Vista";
いろんなブラウザでアクセスしてみて