PHP+Memcache实现wordpress访问总数统计(非插件)

时间:2021-07-07 00:19:58

以前写过一篇博文,利用 PHPMemcache 实现网站,以下链接查看:http://www.zzvips.com/article/84878.html
今天就把该功能用到 wordpress 中,并实现把访问次数保存到数据库中。

MySQL 语句

首先在参数表中,添加访问次数的默认数据

?
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
// 获取所有浏览次数
function get_all_visit_number()
{
 $mc = new Memcache ();
 
 // 使用wordpress自带wpdb类
 global $wpdb;
 
 // 参数表
 $table = "wp_options";
 
 // 连接memcache
 $mc->connect ( "127.0.0.1", 11211 );
 
 // 获取浏览次数
 $visit_number = $mc->get ( 'visit_number' );
 
 // Memcache 中是否存有访问次数
 if (!$visit_number) {
 
 // 不存在时,查询数据库
 $querystr = "SELECT `option_value` FROM " .$table. " WHERE `option_name`='visit_number'";
 $results = $wpdb->get_results($querystr);
 
 // 把数据库中存储的值赋予memcache变量
 $visit_number = intval($results[0]->option_value);
 }
 
 // 设置浏览次数
 $mc->set ( 'visit_number', ++$visit_number);
 
 // 获取浏览次数
 $visit_number = $mc->get ( 'visit_number' );
 
 
 // 每达100次访问量,更新到数据库
 if ($visit_number % 100 == 0) {
 
 // 使用wordpress自带wpdb类
 $data_array = array(
  'option_value' => $visit_number
 );
 
 $where_clause = array(
  'option_name' => 'visit_number'
 );
 
 $wpdb->update($table,$data_array,$where_clause);
 }
 
 // 关闭memcache连接
 $mc->close ();
 
 return $visit_number;
}