本文最后更新于(2023-3-5 19:41:03),链接可能失效,内容可能难以复现。请注意甄别。
© 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); ?>