这篇文章 说了两个事情,在我们的wordpress网站生成访问日志和实现蜘蛛爬行日志的分析,主要是无插件来实现的,所以很感兴趣,网上很多转载,分析了半天最初的原创应当是 千丝海阁,不知道了,总之分享来一起学习吧。网上据说对seo还有帮助。
一、建立mylogs.php文件
避免functions.php过于臃肿,我们单独把蜘蛛爬行分析页面的代码放在一个php文件中,命名为:mylogs.php,放在当前主题目录的inc文件夹下。
在functions.php中引入mylogs.php:
require get_template_directory() . '/inc/mylogs.php';
二、生成网站日志
首先是先生成网站日志,把以下代码放入mylogs.php中
<?php
//保存日志文件至mylogs.txt
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";
$day = date('md',$_SERVER['REQUEST_TIME'] + 3600*8);
if (file_exists($filename)) {
$fh = fopen($filename, "r");
$data = fread($fh, 10);
if(substr($data,0,4) == $day)
$fh = fopen($filename, "a");
else
$fh = fopen($filename, "w");
fwrite($fh, $word);
fclose($fh);
}
//endif;
}
}
//获取IP地址,网上现成代码
function getIP() //get ip address
{
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];
$browserver = $browserver;
$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];
$browserver = $browserver;
$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];
$browserver = $browserver;
$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];
$browserver = $browserver;
$browser = 'Internet Explorer';
}
if($browser != '')
{
$browseinfo = $browser.' '.$browserver;
}
else
{
$browseinfo = $_SERVER['HTTP_USER_AGENT'];
}
return $browseinfo;
}
?>
这样,在你的站点根目录上就会生成mylogs.txt文件,你通过http://你的域名/mylogs.txt可以直接访问。这样的日志要比chinaz这种统计工具生成的日志精准的多,你可以通过日志得知哪些人访问哪些文件,哪些蜘蛛爬行过了等等信息。
你可以点击查看511遇见的网站日志: http://www.511yj.com/mylogs.txt
三、生成日志分析代码
下面这段代码的作用就是读取上面的mylogs.txt,通过正则匹配蜘蛛特征标志然后进行统计,并显示结果。创建短代码spiderlogs,该段代码可用参数text,默认为yes,生成文本描述+圆饼图,如只需要显示圆饼图,则设置text为no即可。同样是放入mylogs.php中。特别声明
,以上文字是复制的,其实我们分析代码,看看最后在生成圆饼图时是用了Google Chart API
在线生成,现在由于.......其实你懂得,是无法链接和生成的,所以我们在复制源码时要删掉这段,否则你的网页打开会很慢的。
由于原代码很长,所以就不复制了,你可以直接下载文件mylogs.php在你的functions.php中引入就ok了。
百度网盘下载
四、建立蜘蛛爬行分析页面
登录Wordpress后台管理-页面-建立新页面-输入[ spiderlogs ] ,保存你的页面就可以了。输入时spiderlogs两边没有空格。其实你在wordpress网站发布的任何一篇文章内引入以上代码都能显示蜘蛛爬行分析页面。
您可能感兴趣的文章:
▪ 批量关闭开启wordpress文章的评论功能
▪ wordpress手动升级详细步骤
▪ WordPress网站免备案主机推荐老薛主机
▪ wordpress百度搜索移动友好度深度解读
▪ wordpress前台“书签”显示为“友情链接”方法
▪ 提升WordPress 国外主题打开速度全面解决方案
▪ wordpress地址出现 /?security_verify_data=313932xxx原因及解决办法
▪ WordPress 性能优化:使用 nginx 服务器
▪ Windows server支持WordPress自动发邮件
▪ Wordpress非插件自定义点赞功能样式