调用WordPress函数统计文章访问量及PHP原生计数器的实现
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
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
/* 访问计数 */
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等页面调用:
1
|
<?php post_views( ' ' , ' 次' ); ?>
|
3.PHP原生实现访问计数器示例:
index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<?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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
<?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 );
}
?>
|
本文由主机测评网发布,不代表主机测评网立场,转载联系作者并注明出处:https://zhuji.jb51.net/wordpress/7382.html