调用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实现的仿阿里巴巴实现同类产品翻页
Dec 11 PHP
PHP sprintf()函数用例解析
May 18 PHP
php中定时计划任务的实现原理
Jan 08 PHP
php5.5中类级别的常量使用介绍
Oct 02 PHP
php实现图形显示Ip地址的代码及注释
Jan 20 PHP
PHP实现生成唯一编号(36进制的不重复编号)
Jul 01 PHP
php中异常处理方法小结
Jan 09 PHP
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)
Sep 22 PHP
Yii2实现log输出到file及database的方法
Nov 12 PHP
基于Laravel实现的用户动态模块开发
Sep 21 PHP
Laravel如何使用Redis共享Session
Feb 23 PHP
Laravel修改验证提示信息为中文的示例
Oct 23 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
全国FM电台频率大全 - 9 上海市
2020/03/11 无线电
菜鸟学PHP之Smarty入门
2007/01/04 PHP
php xml留言板 xml存储数据的简单例子
2009/08/24 PHP
PHP文件打开、关闭、写入的判断与执行代码
2011/05/24 PHP
php 问卷调查结果统计
2015/10/08 PHP
Yii2 rbac权限控制操作步骤实例教程
2016/04/29 PHP
php字符集转换
2017/01/23 PHP
JQuery在光标位置插入内容的实现代码
2010/06/18 Javascript
javascript工具库代码
2012/03/29 Javascript
Javascript算符的优先级介绍
2013/03/20 Javascript
22点关于jquery性能优化的建议
2014/05/28 Javascript
防止登录页面出现在frame中js代码
2014/07/22 Javascript
js中string转int把String类型转化成int类型
2014/08/13 Javascript
Nodejs实现的一个静态服务器实例
2014/12/06 NodeJs
JavaScript中Hoisting详解 (变量提升与函数声明提升)
2017/08/18 Javascript
JS中关于正则的巧妙操作
2017/08/31 Javascript
vue项目关闭eslint校验
2018/03/21 Javascript
React Native日期时间选择组件的示例代码
2018/04/27 Javascript
7个好用的JavaScript技巧分享(译)
2019/05/07 Javascript
JavaScript如何操作css
2020/10/24 Javascript
vue 使用class创建和清除水印的示例代码
2020/12/25 Vue.js
树莓派中python获取GY-85九轴模块信息示例
2013/12/05 Python
python实现ipsec开权限实例
2014/11/11 Python
Python for Informatics 第11章之正则表达式(二)
2016/04/21 Python
Django Admin 实现外键过滤的方法
2017/09/29 Python
python中is与双等于号“==”的区别示例详解
2017/11/21 Python
详解python中@的用法
2019/03/27 Python
python算法与数据结构之单链表的实现代码
2019/06/27 Python
Pandas操作CSV文件的读写实现方法
2019/11/13 Python
pycharm 2019 最新激活方式(pycharm破解、激活)
2020/09/22 Python
周仰杰(JIMMY CHOO)英国官方网站:闻名世界的鞋子品牌
2018/10/28 全球购物
信息部岗位职责
2013/11/12 职场文书
处级领导干部四风问题自我剖析材料
2014/09/29 职场文书
公务员党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
模范班主任事迹材料
2014/12/17 职场文书
Java8中Stream的一些神操作
2021/11/02 Java/Android