65、如何给你的网站添加统计代码
一、为什么要添加统计代码?
便于了解你的网站运营情况,及时进行网站运营优化,比如用户喜欢浏览什么内容,什么页面,用户从哪个渠道了解你的网站等等
根据这些信息,你可以多发布用户喜欢的内容,不喜欢的内容少发布等等一系列优化操作
二、如何使用
以百度统计为例:平台注册/使用设置/新增网站,资料填写完成后你会获取一个统计代码
把代码放到主题文件夹下的footer.php里,放到〈body〉之前
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?2e63129f2c37325808747147de4b938f";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
或者主题设置/底部设置/自定义JS代码那里填入信息,进行保存
然后百度统计/使用设置/网站列表找到使用的网站,检查代码安装状态,如果好了会提示代码安装正确
纯代码实现总访问量/日访问量/当前是第几个访客
,无法看到详细数据,可以给用户看的
functions.php里添加如下代码
/**
* 统计全站总访问量/今日总访问量/当前是第几个访客
* @return [type] [description]
*/
function wb_site_count_user(){
$addnum = 1; // rand(1,1); //每个访客增加的访问数 5 - 10的随机数
session_start();
$date = date('ymd',time());
if(!isset($_SESSION['wb_'.$date]) && !$_SESSION['wb_'.$date]){
$count = get_option('site_count');
if(!$count || !is_array($count)){
$newcount = array(
'all' => 12012,
'date' => $date,
'today' => $addnum
);
update_option( 'site_count', $newcount );
}else{
$newcount = array(
'all' => ($count['all']+$addnum),
'date' => $date,
'today' => ($count['date'] == $date) ? ($count['today']+$addnum) : $addnum
);
update_option( 'site_count', $newcount );
}
$_SESSION['wb_'.$date] = $newcount['today'];
}
return;
}
add_action('init', 'wb_site_count_user');
//输出访问统计
function wb_echo_site_count(){
session_start();
$sitecount = get_option('site_count');
$date = date('ymd',time());
echo '<p>总访问量:<span style="color:white">'.absint($sitecount['all']).'</span> 今日访问量:<span style="color:white">'.absint($sitecount['today']).'</span> 您是今天第:<span style="color:white">'.absint($_SESSION['wb_'.$date]).'</span> 个访问者</p>';
}
然后在footer.php 或网页主页,合适的位置放入以下代码
<div>
<?php wb_echo_site_count(); ?>
</div>
再或者把下面代码直接放到footer.php里面就可以了,计算总访问量和访客数
<script async src="https://api.ly522.com/js/jilei.pure.mini.js"></script>
<span id="jilei_container_site_pv">本站总访问量<span id="jilei_value_site_pv"></span>次</span>
<span class="post-meta-divider">|</span>
<span id="jilei_container_site_uv">本站访客数<span id="jilei_value_site_uv"></span>人</span></p>
类似的代码,只记录到访人数,默认中间
<?php
@session_start();
$counter = intval(file_get_contents("counter.dat"));
if(!$_SESSION['#'])
{
$_SESSION['#'] = true;
$counter++;
$fp = fopen("counter.dat","w");
fwrite($fp, $counter);
fclose($fp);
}
?>
<p align="center">您是到访的第<?php echo "$counter";?>位用户<p>
类似的代码,只记录到访人数,默认左侧
<?php
//首先你要有读写文件的权限,首次访问肯不显示,正常情况刷新即可
$online_log = "maplers.dat"; //保存人数的文件到根目录,
$timeout = 30;//30秒内没动作者,认为掉线
$entries = file($online_log);
$temp = array();
for ($i=0;$i<count($entries);$i++){
$entry = explode(",",trim($entries[$i]));
if(($entry[0] != getenv('REMOTE_ADDR')) && ($entry[1] > time())) {
array_push($temp,$entry[0].",".$entry[1]."\n"); //取出其他浏览者的信息,并去掉超时者,保存进$temp
}}
array_push($temp,getenv('REMOTE_ADDR').",".(time() + ($timeout))."\n"); //更新浏览者的时间
$maplers = count($temp); //计算在线人数
$entries = implode("",$temp);
//写入文件
$fp = fopen($online_log,"w");
flock($fp,LOCK_EX); //flock() 不能在NFS以及其他的一些网络文件系统中正常工作
fputs($fp,$entries);
flock($fp,LOCK_UN);
fclose($fp);
echo "在线人数:".$maplers."人";
?>
记录运行时间
<h6> <span id="momk"></span><span id="momk" style="color: #ff0000;"></span>
<script type="text/javascript">
function NewDate(str) {
str = str.split('-');
var date = new Date();
date.setUTCFullYear(str[0], str[1] - 1, str[2]);
date.setUTCHours(0, 0, 0, 0);
return date;
}
function momxc() {
var birthDay =NewDate("2005-3-10");
var today=new Date();
var timeold=today.getTime()-birthDay.getTime();
var sectimeold=timeold/1000
var secondsold=Math.floor(sectimeold);
var msPerDay=24*60*60*1000; var e_daysold=timeold/msPerDay;
var daysold=Math.floor(e_daysold);
var e_hrsold=(daysold-e_daysold)*-24;
var hrsold=Math.floor(e_hrsold);
var e_minsold=(hrsold-e_hrsold)*-60;
var minsold=Math.floor((hrsold-e_hrsold)*-60); var seconds=Math.floor((minsold-e_minsold)*-60).toString();
document.getElementById("momk").innerHTML = "本站为广大站长服务了"+daysold+"天"+hrsold+"小时"+minsold+"分"+seconds+"秒";
setTimeout(momxc, 1000);
}momxc();
</script> <style>
#momk{animation:change 10s infinite;font-weight:800; }
@keyframes change{0%{color:#5cb85c;}25%{color:#556bd8;}50%{color:#e40707;}75%{color:#66e616;}100% {color:#67bd31;}}
</style></h6>
三、常见问题
访问页面突然增加很多并出现一堆乱七八糟的后缀
这是恶意被刷的,并不是真实来访数据,也不是你的网站被黑了,当然也有可能。
是因为你的统计接口和别人接口最大的区别就是ID 不一样,只需要设置ID 为变量,做一个多位数的动态参数,然后把需要推广内容伪造成多搜索引擎渠道。来访的前置页面用 referer 参数嵌入 post 进行推送就可以了。
操作者利用你的百度统计 js 里面的标识码 ID,使用工具伪装百度搜索结果跳转给你,百度统计就记录了这些跳转的参数,这是打广告的一种途径,实际根本没有给目标站带来任何流量,甚至附带的网址和搜索词很可能就是些骗子网站或垃圾站点。
解决办法1:重新获取统计代码,因为已经泄露了
解决办法2:管理-过滤规则设置
(1)点击【管理】,再点击【统计规则设置-过滤规则设置】,在【受访域名统计规则】中,点击【白名单】,在下方添加自己网站的域名。
(2)点击【管理】,再点击【统计规则设置-过滤规则设置】,点击【排除IP地址】,排除来自某些特点IP的访问,使得统计报告中不包含此部分流量,最多排除20个IP地址。(IP地址可以从实时访客获取)
(3)点击【管理】,再点击【统计规则设置-过滤规则设置】,点击【排除搜索词】,排除百度统计报告中某些非百度推广来源的特定搜索词。最多排除100个搜索词。
解决办法3:重新获取代码,并加密统计代码
在搜小二站长工具箱进行代码混淆,把混淆后的代码替换原来的。
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。