今天有站长问冬镜:Emlog程序想要使网站统计到整站的文章数据、用户数据、建站时间、标签、友链等信息,是需要直接写代码就行还是需要插件?冬镜这里可以直接告诉大家,不管你是使用插件还是代码都可以实现网站整站数据统计。那么,实现网站信息统计难吗?

网站信息统计

Emlog实现网站信息统计采用代码的方式来实现是很简单的,就算你不特别懂代码,只要跟着冬镜的步骤操作也一定可以实现该功能的。

Emlog网站信息统计的好处

1、网站信息一目了然,不仅能让用户快速的知道其信息,对我们自身运营网站的站长也是提供了极大的便利;

2、利于数据分析,比如用户增长的情况、留言情况等。

Emlog如何实现网站信息统计

冬镜在这里分享2个方法,具体使用那个方法,站长你自己决定。

方法一:利用Emlog官方提供的缓存统计代码,在你需要显示的位置插入以下代码即可。

<?php $sta_cache = Cache::getInstance()->readCache('sta'); ?>
<li>日志数量:<?php echo $sta_cache['lognum']; ?></li>
<li>评论数量:<?php echo $sta_cache['comnum']; ?></li>
<li>微语数量:<?php echo $sta_cache['tbnum']; ?></li>
<li>运行时间:<?php echo floor((time()-strtotime("2018-04-04"))/86400); ?>天</li>

优点:网页加载速度是比较快的;

缺点:很多时候网站信息得不到及时的更新。

emlog统计

方法二:SQL语句查询返回数据

2.1 首先在模板文件 module.php 文件最后添加如下代码

<?php
	//统计文章总数
	function count_log_all(){
		$db = MySql::getInstance();
		$data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE type = 'blog'");
		return $data['total'];
	}
 
	//置顶文章数
	function count_log_top(){
		$db = MySql::getInstance();
		$data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE  top = 'y' or sortop = 'y' AND type = 'blog'");
		return $data['total'];
	}
	//隐藏文章数
	function count_log_hide(){
		$db = MySql::getInstance();
		$data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE hide = 'y' AND type = 'blog'");
		return $data['total'];
	}
 
	//未审核文章数
	function count_log_check(){
		$db = MySql::getInstance();
		$data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE checked = 'n' AND type = 'blog'");
		return $data['total'];
	}
 
	//加密文章数
	function count_log_pass(){
		$db = MySql::getInstance();
		$data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE  password !='' AND type = 'blog'");
		return $data['total'];
	}
 
	//统计页面总数
	function count_page_all(){
		$db = MySql::getInstance();
		$data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE type = 'page'");
		return $data['total'];
	}
 
	//统计评论总数
	function count_com_all(){
		$db = MySql::getInstance();
		$data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "comment");
		return $data['total'];
	}
	//统计友链总数
	function count_link_all(){
		$db = MySql::getInstance();
		$data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "link");
		return $data['total'];
	}
 
	//统计微语评论总数
	function count_treply_all(){
		$db = MySql::getInstance();
		$data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "reply");
		return $data['total'];
	}
 
	//统计分类总数
	function count_sort_all(){
		$db = MySql::getInstance();
		$data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "sort");
		return $data['total'];
	}
 
	//统计子分类数
	function count_sort_mod(){
		$db = MySql::getInstance();
		$data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "sort WHERE pid != 0");
		return $data['total'];
	}
 
	//统计标签总数
	function count_tag_all(){
		$db = MySql::getInstance();
		$data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "tag");
		return $data['total'];
	}
 
	//统计微语总数
	function count_tw_all(){
		$db = MySql::getInstance();
		$data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "twitter");
		return $data['total'];
	}
 
	//统计用户总数
	function count_user_all(){
		$db = MySql::getInstance();
		$data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "user");
		return $data['total'];
	}
 
	//统计管理员总数
	function count_user_admin(){
		$db = MySql::getInstance();
		$data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "user WHERE role = 'admin'");
		return $data['total'];
	}
 
	//统计作者总数
	function count_user_writer(){
		$db = MySql::getInstance();
		$data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "user WHERE role = 'writer'");
		return $data['total'];
	}
 
	//统计附件总数
	function count_att_all(){
		$db = MySql::getInstance();
		$data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "attachment");
		return $data['total'];
	}
 
	//最后发表文章时间 
	function last_post_log(){
		$db = MySql::getInstance();
		$sql = "SELECT * FROM " . DB_PREFIX . "blog WHERE type='blog' ORDER BY date DESC LIMIT 0,1";
		$res = $db->query($sql);
		$row = $db->fetch_array($res);
		$date = date('Y-n-j H:i',$row['date']);
		return $date;       
	};
?>
2.2 在需要显示的位置插入如下调用变量即可。

<ul>
	<li>文章总数:<?php echo count_log_all();?></li>
	<li>置顶文章:<?php echo count_log_top();?></li>
	<li>隐藏文章:<?php echo count_log_hide();?></li>
	<li>待审文章:<?php echo count_log_check();?></li>
	<li>加密文章:<?php echo count_log_pass();?></li>
	<li>页面总数:<?php echo count_page_all();?></li>
	<li>评论总数:<?php echo count_com_all();?></li>
	<li>友链总数:<?php echo count_link_all();?></li>
	<li>微语评论:<?php echo count_treply_all();?></li>
	<li>分类总数:<?php echo count_sort_all();?></li>
	<li>子分类数:<?php echo count_sort_mod();?></li>
	<li>标签总数:<?php echo count_tag_all();?></li>
	<li>微语总数:<?php echo count_tw_all();?></li>
	<li>用户总数:<?php echo count_user_all();?></li>
	<li>管理员数:<?php echo count_user_admin();?></li>
	<li>作者总数:<?php echo count_user_writer();?></li>
	<li>附件总数:<?php echo count_att_all();?></li>
	<li>最后更新:<?php echo last_post_log();?></li>	
</ul>
具体的CSS样式冬镜就不给大家提供了,比较每个人喜欢的不一样,而且最好和自己的网站模板主题搭配才是最佳的。

优点:动态查询,所以数据可以说是实时更新,不会担心有数据更新不及时。

缺点:网页打开速度慢(相比方法一速度是毕竟慢的)。

emlog网站信息统计

好了,关于Emlog网站信息统计教程,冬镜就讲到这里,如果你还有什么不懂的,请评论区留言交流!

版权声明

本文仅代表作者 冉冬镜 观点,不代表冬镜网立场

本文系作者授权冬镜网发表,如若转载,请注明出处:Emlog侧边栏网站信息统计代码教程