调用WordPress函数统计文章访问量及PHP原生计数器的实现

1.首先介绍wordpress的两款功能强大的插件

(1)Count per Day 是一个非常强大的访客数量统计插件,可以统计每天、昨天、每周、每月等等的访客数量(根据IP进行统计),统计在线访客数、浏览器、搜索词等等,自带多种调用简码、模板标签以及小工具,方便你自行调用和集成。 (2)StatPressCN,实时显示blog的访问统计,完美支持中文(如搜索关键字等)。它可以集中显示来访者、爬虫、搜索关键字、订阅统计、浏览器、操 作系统等信息,方便您及时把握blog的访问情况,同时还提供了定制输出统计权限、信息存储期等个性化设置选项。另外,您可以随时掌握blog被订阅的 情况并把它放在侧栏中显示,还可以获得所有页面包括post、page、archive以及homepage)被访问的情况,还可以在侧栏中显示 blog中被访问最多的热门文章等。 增加了对中国大陆和港台地区的本地化语言支持(目前支持wp-config.php中设置为zh_CN、zh_HK和zh_TW)。 安装插件的方式固然功能很强大,但是弊端也是显而易见的——容易影响网页加载速度,所以我放弃了这种方式。

2.其次,是简单的几条代码,通过统计网页刷新的次数来记录访客数的,把以下代码放到function.PHP中:

ID; if($post_ID) { $post_views = (int)get_post_meta($post_ID,'views',true); if(!update_post_Meta($post_ID,($post_views+1))) { add_post_Meta($post_ID,1,true); } } } } add_action('wp_head','record_visitors');

/// 函数名称:post_views
/// 函数作用:取得文章的阅读次数
function post_views($before = '(点击 ',$after = ' 次)',$echo = 1)
{
global $post;
$post_ID = $post->ID;
$views = (int)get_post_meta($post_ID,true);
if ($echo) echo $before,number_format($views),$after;
else return $views;
}

然后在需要显示的界面,比如footer.PHP或header.PHP页面调用

rush:PHP;">

3.PHP原生实现访问计数器示例: index.PHP

rush:PHP;"> 访问计数器

访问者计数器

你是第 个访问者

counter.PHP

rush:PHP;"> PHP //$five,$four 等变量表示零的个数,放在数字前边构成6位 function Counter() { //定义函数 $five = "00000"; //声明变量 $four = "0000"; $three = "000"; $two = "00"; $one = "0"; $counter = "record.dat"; //存放访问数的目的文件,.dat格式 if(!file_exists($counter)) //判断文件是否存在 { $counter = fopen($counter,"w"); fputs($counter,"0"); //写入文件 fclose($counter); } else { $fp = fopen($counter,"r+"); $num = fgets($fp,"1024"); //如果文件存在则读出文件,并加 1 $num = $num + 1; if($num < 10) print "$five"."$num"; elseif($num < 100) print "$four"."$num"; elseif($num < 1000) print "$three"."$num"; elseif($num < 10000) print "$two"."$num"; elseif($num < 100000) print "$one"."$num"; else print "$num"; } $fp = fopen($counter,"w"); fputs($fp,"$num"); fclose($fp); } ?>

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...