调用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数组应该有多大的分析
Jul 30 PHP
PHP中空字符串介绍0、null、empty和false之间的关系
Sep 25 PHP
ThinkPHP模板判断输出Defined标签用法详解
Jun 30 PHP
php实现mysql数据库分表分段备份
Jun 18 PHP
php如何连接sql server
Oct 16 PHP
使用Huagepage和PGO来提升PHP7的执行性能
Nov 30 PHP
学习php设计模式 php实现原型模式(prototype)
Dec 07 PHP
大家须知简单的php性能优化注意点
Jan 04 PHP
浅谈Yii乐观锁的使用及原理
Jul 25 PHP
php图片合成方法(多张图片合成一张)
Nov 25 PHP
laravel异步监控定时调度器实例详解
Jun 21 PHP
PHP中strval()函数实例用法
Jun 07 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发送短信验证码完成注册功能
2015/11/24 PHP
PHP Pipeline 实现中间件的示例代码
2020/04/26 PHP
让插入到 innerHTML 中的 script 跑起来的实现代码
2006/07/01 Javascript
JavaScript Scoping and Hoisting 翻译
2012/07/03 Javascript
使用js对select动态添加和删除OPTION示例代码
2013/08/12 Javascript
使用jQuery简单实现模拟浏览器搜索功能
2014/12/21 Javascript
window.location.reload 刷新使用分析(去对话框)
2015/11/11 Javascript
实例剖析AngularJS框架中数据的双向绑定运用
2016/03/04 Javascript
JS中绑定事件顺序(事件冒泡与事件捕获区别)
2017/01/24 Javascript
angularjs实现分页和搜索功能
2018/01/03 Javascript
基于vue,vue-router, vuex及addRoutes进行权限控制问题
2018/05/02 Javascript
vue click.stop阻止点击事件继续传播的方法
2018/09/04 Javascript
跨域请求两种方法 jsonp和cors的实现
2018/11/11 Javascript
js实现搜索栏效果
2018/11/16 Javascript
vue轻量级框架无法获取到vue对象解决方法
2019/05/12 Javascript
js new Date()实例测试
2019/10/31 Javascript
vue使用自定义事件的表单输入组件用法详解【日期组件与货币组件】
2020/06/01 Javascript
Element InputNumber 计数器的实现示例
2020/08/03 Javascript
在Lighttpd服务器中运行Django应用的方法
2015/07/22 Python
深入理解python对json的操作总结
2017/01/05 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
2019/07/11 Python
python实现一个猜拳游戏
2020/04/05 Python
Python内置函数locals和globals对比
2020/04/28 Python
iHerb中文官网:维生素、保健品和健康产品
2018/11/01 全球购物
台湾专柜女包:KINAZ
2019/12/26 全球购物
药学专业个人自我评价
2013/11/11 职场文书
机械工程及其自动化专业求职信
2014/08/08 职场文书
夏季药店促销方案
2014/08/22 职场文书
分居协议书范本
2014/11/03 职场文书
初二学生评语大全
2014/12/26 职场文书
天坛导游词
2015/02/02 职场文书
英语教师个人工作总结
2015/02/09 职场文书
Python中文分词库jieba(结巴分词)详细使用介绍
2022/04/07 Python
Ubuntu Server 安装Tomcat并配置systemctl
2022/04/28 Servers
mysql5.5中文乱码问题解决的有用方法
2022/05/30 MySQL
Python sklearn分类决策树方法详解
2022/09/23 Python