调用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 相关文章推荐
15个小时----从修改程序到自己些程序
Oct 09 PHP
PHP下MAIL的另一解决方案
Oct 09 PHP
PHPMailer 中文使用说明小结
Jan 22 PHP
phpstrom使用xdebug配置方法
Dec 17 PHP
编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法
Jun 27 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
Dec 19 PHP
php使用数组填充下拉列表框的方法
Mar 31 PHP
php计算两个坐标(经度,纬度)之间距离的方法
Apr 17 PHP
php实现比较两个字符串日期大小的方法
May 12 PHP
详解WordPress中添加友情链接的方法
May 21 PHP
PHP中的use关键字及文件的加载详解
Nov 28 PHP
yii2.0框架多模型操作示例【添加/修改/删除】
Apr 13 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+jQuery+Ajax实现用户登录与退出
2015/04/27 PHP
PHP Cookie学习笔记
2016/08/23 PHP
Yii2实现UploadedFile上传文件示例
2017/02/15 PHP
详解php curl带有csrf-token验证模拟提交方法
2018/04/18 PHP
用js实现的抽象CSS圆角效果!!
2007/05/03 Javascript
基于jquery的复制网页内容到WORD的实现代码
2011/02/16 Javascript
jQuery之ajax技术的详细介绍
2013/06/19 Javascript
JS 在指定数组中随机取出N个不重复的数据
2014/06/10 Javascript
jQuery 动态云标签插件
2014/11/11 Javascript
javascript使用switch case实现动态改变超级链接文字及地址
2014/12/16 Javascript
JS随机调用指定函数的方法
2015/07/01 Javascript
JavaScript数据结构之二叉树的遍历算法示例
2017/04/13 Javascript
通过构造函数实例化对象的方法
2017/06/28 Javascript
Angular将填入表单的数据渲染到表格的方法
2017/09/22 Javascript
浅谈JavaScript的innerWidth与innerHeight
2017/10/12 Javascript
原生JS实现ajax与ajax的跨域请求实例
2017/12/01 Javascript
webpack4的迁移的使用方法
2018/05/25 Javascript
JS控制GIF图片的停止与显示
2019/10/24 Javascript
vue登录以及权限验证相关的实现
2019/10/25 Javascript
[07:20]2014DOTA2西雅图国际邀请赛 选手讲解积分赛第二天
2014/07/11 DOTA
python的正则表达式re模块的常用方法
2013/03/09 Python
python抽象基类用法实例分析
2015/06/04 Python
Python设计模式编程中解释器模式的简单程序示例分享
2016/03/02 Python
python 获取网页编码方式实现代码
2017/03/11 Python
基于hashlib模块--加密(详解)
2017/06/21 Python
python对文件目录的操作方法实例总结
2019/06/24 Python
Python3.7 读取 mp3 音频文件生成波形图效果
2019/11/05 Python
selenium+python实现自动登陆QQ邮箱并发送邮件功能
2019/12/13 Python
python画环形图的方法
2020/03/25 Python
IE浏览器单独写CSS样式的几种方法
2014/10/14 HTML / CSS
购买原创艺术品:Zatista
2019/11/09 全球购物
入党申请书自我鉴定
2013/10/12 职场文书
经典广告词大全
2014/03/14 职场文书
小学趣味运动会加油稿
2014/09/25 职场文书
2016毕业实习单位评语大全
2015/12/01 职场文书
经典法律座右铭(50句)
2019/08/15 职场文书