对于一个网站来说,分析站点访问日志是非常重要的一件事。但是经常去服务器后台查询网站的访问日志太麻烦,而且很多vps都不带有访问日志这个功能。在这里周良给大家分享一个小技巧,可以为 WordPress 生成网站访问日志,日志内容还是可以自定义的,这样就可以省去每次都要登录主机后台查询。
把下面的代码添加到主题的 function.php
文件中即可:
make_log_file();
function make_log_file() {
// log 文件名
$filename = 'mylogs.txt';
// 去除 rc-ajax 评论以及 cron 机制访问记录
if (strstr($_SERVER["REQUEST_URI"], "rc-ajax") == false
&& strstr($_SERVER["REQUEST_URI"], "wp-cron.php") == false) {
$word = date('mdHis', $_SERVER['REQUEST_TIME'] + 3600 * 8) . " ";
// 访问页面
$word .= $_SERVER["REQUEST_URI"] . " ";
// 协议
$word .= $_SERVER['SERVER_PROTOCOL'] . " ";
// 方法, POST OR GET
$word .= $_SERVER['REQUEST_METHOD'] . " ";
//$word .= $_SERVER['HTTP_ACCEPT'] . " ";
// 获得浏览器信息
$word .= getbrowser() . " ";
// 传递参数
$word .= "[" . $_SERVER['QUERY_STRING'] . "] ";
// 跳转地址
$word .= $_SERVER['HTTP_REFERER'] . " ";
// 获取IP
$word .= getIP() . " ";
$word .= "\n";
$fh = fopen($filename, "a");
fwrite($fh, $word);
fclose($fh);
}
}
// 获取IP地址,网上现成代码
function getIP() {
if (getenv('HTTP_CLIENT_IP')) {
$ip = getenv('HTTP_CLIENT_IP');
} else if (getenv('HTTP_X_FORWARDED_FOR')) {
$ip = getenv('HTTP_X_FORWARDED_FOR');
} else if (getenv('REMOTE_ADDR')) {
$ip = getenv('REMOTE_ADDR');
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
// 获取浏览器信息,移动端,平板电脑数据还未加上。
function getbrowser() {
$Agent = $_SERVER['HTTP_USER_AGENT'];
$browser = '';
$browserver = '';
if (ereg('Mozilla', $Agent) && ereg('Chrome', $Agent)) {
$temp = explode('(', $Agent);
$Part = $temp[2];
$temp = explode('/', $Part);
$browserver = $temp[1];
$temp = explode(' ', $browserver);
$browserver = $temp[0];
$browser = 'Chrome';
}
if (ereg('Mozilla', $Agent) && ereg('Firefox', $Agent)) {
$temp = explode('(', $Agent);
$Part = $temp[1];
$temp = explode('/', $Part);
$browserver = $temp[2];
$temp = explode(' ', $browserver);
$browserver = $temp[0];
$browser = 'Firefox';
}
if (ereg('Mozilla', $Agent) && ereg('Opera', $Agent)) {
$temp = explode('(', $Agent);
$Part = $temp[1];
$temp = explode(')', $Part);
$browserver = $temp[1];
$temp = explode(' ', $browserver);
$browserver = $temp[2];
$browser = 'Opera';
}
if (ereg('Mozilla', $Agent) && ereg('MSIE', $Agent)) {
$temp = explode('(', $Agent);
$Part = $temp[1];
$temp = explode(';', $Part);
$Part = $temp[1];
$temp = explode(' ', $Part);
$browserver = $temp[2];
$browser = 'Internet Explorer';
}
if ($browser != '') {
$browseinfo = $browser . ' ' . $browserver;
} else {
$browseinfo = $_SERVER['HTTP_USER_AGENT'];
}
return $browseinfo;
}
ok,在你的站点根目录上就会生成 mylogs.txt
这个文件,通过 https://imzl.com/mylogs.txt
可以直接访问。这样生成的网站日志会比 CNZZ 等第三方统计工具生成的日志精准的多,你可以通过日志得知哪些人访问哪些文件,哪些蜘蛛爬行过了等等信息。