首页 > CMS > Wordpress > 正文

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

2024-09-07 00:40:19
字体:
来源:转载
供稿:网友

这篇文章主要介绍了调用WordPress函数统计文章访问量及PHP原生计数器的实现,文中作者也提到了WordPress中的两款插件不过出于性能考虑并不推荐插件方式的实现,需要的朋友可以参考下。

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

  1. /* 访问计数 */ 
  2. function record_visitors() 
  3.  if (is_singular()) 
  4.  { 
  5.  global $post
  6.  $post_ID = $post->ID; 
  7.  if($post_ID
  8.  { 
  9.  $post_views = (int)get_post_meta($post_ID'views', true); 
  10.  if(!update_post_meta($post_ID'views', ($post_views+1))) 
  11.  { 
  12.  add_post_meta($post_ID'views', 1, true); 
  13.  } 
  14.  } 
  15.  } 
  16. add_action('wp_head''record_visitors'); 
  17.    
  18. /// 函数名称:post_views 
  19. /// 函数作用:取得文章的阅读次数 
  20. function post_views($before = '(点击 '$after = ' 次)'$echo = 1) 
  21.  global $post
  22.  $post_ID = $post->ID; 
  23.  $views = (int)get_post_meta($post_ID'views', true); 
  24.  if ($echoecho $before, number_format($views), $after
  25.  else return $views

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

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

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

index.php

  1. <?php 
  2.  include("counter.php"
  3. ?> 
  4.  
  5. <html> 
  6.  <head> 
  7.  <title>访问计数器</title> 
  8.  </head> 
  9.  
  10.  <body> 
  11.   <center> 
  12.   <h1>访问者计数器</h1> 
  13.   <U>                 <!--下划线--> 
  14.   <font size="6" face="隶书" >你是第</font> 
  15.   <B> 
  16.    <font size="9" face="Verdana" color="#ffcc00"
  17.    <?php Counter() ?>             <!--调用函数--> 
  18.    </font> 
  19.   </B> 
  20.   <font size="6" face="隶书" >个访问者</font> 
  21.   </U> 
  22.   </center> 
  23.  </body> 
  24. </html> 

counter.php

  1. <?php 
  2.  //$five,$four 等变量表示零的个数,放在数字前边构成6位 
  3.  function Counter() 
  4.  {         //定义函数 
  5.   $five = "00000";          //声明变量 
  6.   $four = "0000"
  7.   $three = "000"
  8.   $two = "00"
  9.   $one = "0"
  10.   $counter = "record.dat";      //存放访问数的目的文件,.dat格式 
  11.   if(!file_exists($counter))     //判断文件是否存在 
  12.   { 
  13.    $counter = fopen($counter,"w"); 
  14.    fputs($counter,"0");      //写入文件 
  15.    fclose($counter); 
  16.   } 
  17.   else 
  18.   { 
  19.    $fp = fopen($counter,"r+"); 
  20.    $num = fgets($fp,"1024");    //如果文件存在则读出文件,并加 1 
  21.    $num = $num + 1; 
  22.    if($num < 10) 
  23.     print "$five"."$num"
  24.    elseif($num < 100) 
  25.     print "$four"."$num"
  26.    elseif($num < 1000) 
  27.     print "$three"."$num"
  28.    elseif($num < 10000) 
  29.     print "$two"."$num"
  30.    elseif($num < 100000) 
  31.     print "$one"."$num"
  32.    else 
  33.     print "$num"
  34.   } 
  35.   $fp = fopen($counter,"w"); 
  36.   fputs($fp,"$num"); 
  37.   fclose($fp); 
  38.  } 
  39. ?>

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表