(php)25.WordPress访问统计

本文最后更新于(2023-3-5 19:41:03),链接可能失效,内容可能难以复现。请注意甄别。

最后编辑:1年前

© Sunplace,2023 根据网上的灵感自己做了一个,省得伸手。 实现功能:
  • 真实的独立访客统计(UV)
  • 刷新页面不增加
  • 用户登录不增加(目前用户为网站管理员)is_user_logged_in()
  • 直接访问不增加(直接在浏览器输入本站地址)$_SERVER['HTTP_REFERER']==''()
数据库建表(建表语句):
# 举例用表,有wordpress数据库前缀"wp_"
# wp_addsettings结构有些复杂,如果只需要一个表来保存UV的值可以更简单
# 我的数据表另有其用
CREATE TABLE `wp_addsettings` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`opname` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`opval` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

# 插入初始值
INSERT INTO `wp_addsettings` VALUES (1, 'uniquevisitor', '0');
页面代码(PHP),在模板的footer.php中加入:
<?php
//将一个数字从低到高每隔三位加一个逗号
function numformat($num){
$num=strrev($num);
$num=chunk_split($num,3,',');
$num=strrev($num);
$num=ltrim($num,',');
return $num;
}

//使用session来记录访问数
session_start();
if(!is_user_logged_in()&&$_SERVER['HTTP_REFERER']!=''&&!isset($_SESSION['uv'])){
$_SESSION['uv']= 0;
$uv++;
$wpdb->update($wpdb->prefix.'addsettings',array('opval'=>$uv),array('opname'=>'uniquevisitor'));
}
echo '访客数(UV):'.numformat($uv);
?>

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

[smirking] [hentai] [wounded] [cracker] more »