调用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 相关文章推荐
php mssql 数据库分页SQL语句
Dec 16 PHP
PHP 木马攻击防御技巧
Jun 13 PHP
php生成EAN_13标准条形码实例
Nov 13 PHP
php去除字符串换行符示例分享
Feb 13 PHP
PHP分页类集锦
Nov 18 PHP
PHP借助phpmailer发送邮件
May 11 PHP
PHP代码维护,重构变困难的4种原因分析
Jan 25 PHP
php关闭warning问题的解决方法
May 17 PHP
PHP实现多关键字加亮功能
Oct 21 PHP
THINKPHP截取中文字符串函数实例代码
Mar 20 PHP
PHP检查网站是否宕机的方法示例
Jul 24 PHP
实例化php类时传参的方法分析
Jun 05 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应用JSON技巧讲解
2013/02/03 PHP
PHP 输出URL的快捷方式示例代码
2013/09/22 PHP
Codeigniter上传图片出现“You did not select a file to upload”错误解决办法
2014/06/12 PHP
THINKPHP项目开发中的日志记录实例分析
2014/12/01 PHP
php创建、获取cookie及基础要点分析
2015/01/26 PHP
简单了解将WordPress中的工具栏移到底部的小技巧
2015/12/31 PHP
PHP共享内存用法实例分析
2016/02/12 PHP
详谈PHP中的密码安全性Password Hashing
2017/02/04 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
2017/02/23 PHP
php数组函数array_push()、array_pop()及array_shift()简单用法示例
2020/01/26 PHP
JavaScript中URL编码函数代码
2011/01/11 Javascript
js检测判断日期大于多少天的方法
2015/05/04 Javascript
jquery带下拉菜单和焦点图代码分享
2015/08/24 Javascript
Bootstrap CSS使用方法
2016/12/23 Javascript
jQuery学习之DOM节点的插入方法总结
2017/01/22 Javascript
jQuery validate 验证radio实例
2017/03/01 Javascript
微信小程序中页面FOR循环和嵌套循环
2017/06/21 Javascript
微信小程序ajax实现请求服务器数据及模版遍历数据功能示例
2017/12/15 Javascript
Vue项目添加动态浏览器头部title的方法
2018/07/11 Javascript
JS实现简单的星期格式转换功能示例
2018/07/23 Javascript
详解操作虚拟dom模拟react视图渲染
2018/07/25 Javascript
keep-alive保持组件状态的方法
2020/12/02 Javascript
python SMTP实现发送带附件电子邮件
2018/05/22 Python
python使用Plotly绘图工具绘制水平条形图
2020/03/25 Python
Python流行ORM框架sqlalchemy安装与使用教程
2019/06/04 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
2019/06/19 Python
详解Pandas之容易让人混淆的行选择和列选择
2019/07/10 Python
Python中的引用和拷贝实例解析
2019/11/14 Python
python脚本监控logstash进程并邮件告警实例
2020/04/28 Python
CSS3旋转——彩色扇子兼容firefox浏览器
2013/06/04 HTML / CSS
行政专员的岗位职责
2014/03/10 职场文书
村级个人对照检查材料
2014/08/22 职场文书
光荣之路观后感
2015/06/12 职场文书
快消品行业营销模式与盈利模式分享
2019/09/27 职场文书
mysql创建存储过程及函数详解
2021/12/04 MySQL
nginx实现多geoserver服务的负载均衡
2022/05/15 Servers