以前写过一篇博文,利用 PHP 和 Memcache 实现网站,以下链接查看: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 ;
}
|