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


Posted in PHP onMarch 21, 2016

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中:

/* 访问计数 */
function record_visitors()
{
 if (is_singular())
 {
 global $post;
 $post_ID = $post->ID;
 if($post_ID)
 {
 $post_views = (int)get_post_meta($post_ID, 'views', true);
 if(!update_post_meta($post_ID, 'views', ($post_views+1)))
 {
 add_post_meta($post_ID, 'views', 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, 'views', true);
 if ($echo) echo $before, number_format($views), $after;
 else return $views;
}

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

<?php post_views(' ', ' 次'); ?>

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

<?php
 include("counter.php")
?>

<html>
 <head>
 <title>访问计数器</title>
 </head>

 <body>
  <center>
  <h1>访问者计数器</h1>
  <U>                 <!--下划线-->
  <font size="6" face="隶书" >你是第</font>
  <B>
   <font size="9" face="Verdana" color="#ffcc00">
   <?php Counter() ?>             <!--调用函数-->
   </font>
  </B>
  <font size="6" face="隶书" >个访问者</font>
  </U>
  </center>
 </body>
</html>

counter.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);
 }
?>

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

PHP 相关文章推荐
在任意字符集下正常显示网页的方法二(续)
Apr 01 PHP
不重新编译PHP为php增加openssl模块的方法
Jun 14 PHP
phpphp图片采集后按原路径保存图片示例
Feb 18 PHP
Yii框架关联查询with用法分析
Dec 02 PHP
PHP实现算式验证码和汉字验证码实例
Mar 09 PHP
详解PHP数组赋值方法
Nov 07 PHP
合格的PHP程序员必备技能
Nov 13 PHP
php cli模式下获取参数的方法
May 05 PHP
php 可变函数使用小结
Jun 12 PHP
CentOS7编译安装php7.1的教程详解
Apr 18 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
Feb 21 PHP
PHP实现基本留言板功能原理与步骤详解
Mar 26 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
Mar 21 #PHP
PHP编程中尝试程序并发的几种方式总结
Mar 21 #PHP
PHP的Laravel框架中使用消息队列queue及异步队列的方法
Mar 21 #PHP
Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法
Mar 21 #PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
Mar 21 #PHP
Zend Framework实现多文件上传功能实例
Mar 21 #PHP
Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
Mar 21 #PHP
You might like
PHP学习之PHP变量
2006/10/09 PHP
php5.x禁用eval的操作方法
2018/10/19 PHP
基于php伪静态的实现方法解析
2020/07/31 PHP
JavaScript 和 Java 的区别浅析
2013/07/31 Javascript
jQuery 中国省市两级联动选择附图
2014/05/14 Javascript
可编辑下拉框的2种实现方式
2014/06/13 Javascript
详解JavaScript中localStorage使用要点
2016/01/13 Javascript
vue-router:嵌套路由的使用方法
2017/02/21 Javascript
详解vue-router和vue-cli以及组件之间的传值
2017/07/04 Javascript
three.js 入门案例详解
2018/01/23 Javascript
highCharts提示框中显示当前时间的方法
2019/01/18 Javascript
vue router 跳转时打开新页面的示例方法
2019/07/28 Javascript
Layui数据表格判断编辑输入的值,是否为我需要的类型详解
2019/10/26 Javascript
在vue中created、mounted等方法使用小结
2020/07/21 Javascript
python学习手册中的python多态示例代码
2014/01/21 Python
Python中绑定与未绑定的类方法用法分析
2016/04/29 Python
微信跳一跳游戏python脚本
2020/04/01 Python
python样条插值的实现代码
2018/12/17 Python
Python 调用 zabbix api的方法示例
2019/01/06 Python
使用Python三角函数公式计算三角形的夹角案例
2020/04/15 Python
Django调用百度AI接口实现人脸注册登录代码实例
2020/04/23 Python
Halston Heritage官网:简洁的日装,稍显奢华的晚装
2018/11/20 全球购物
巴西购物网站:Estrela10
2018/12/13 全球购物
巴西购物网站:Submarino
2020/01/19 全球购物
专业销售业务员求职信
2013/11/18 职场文书
生产部主管岗位职责
2014/01/06 职场文书
收银员的岗位职责范本
2014/02/04 职场文书
活动策划邀请函
2014/02/06 职场文书
清洁工个人工作总结
2015/03/05 职场文书
比赛主持人开场白
2015/05/29 职场文书
2015年重阳节活动主持词
2015/07/30 职场文书
什么是创业计划书?什么是商业计划书?这里一一解答
2019/07/12 职场文书
100句人生哲理语录集锦:强者征服今天,懒汉坐等明天
2019/10/18 职场文书
教你用eclipse连接mysql数据库
2021/04/22 MySQL
Matplotlib可视化之添加让统计图变得简单易懂的注释
2021/06/11 Python
《模拟人生4》推出新补丁 “婚礼奇缘”DLC终于得到修复
2022/04/03 其他游戏