放在functions.php代码如下
/**
* 统计全站总访问量/今日总访问量/当前是第几个访客
*/
function wb_site_count_user(){
$addnum = 1; // 每个访客增加的访问数,可根据需要调整初始值[1,2](@ref)
session_start(); // 启用Session跟踪今日访客[1,2](@ref)
$date = date('ymd', time()); // 获取当前日期,用于标识今日统计[1,2](@ref)
// 判断当前访客今日是否已计数
if(!isset($_SESSION['wb_'.$date]) || !$_SESSION['wb_'.$date]){
$count = get_option('site_count'); // 从数据库获取现有统计数组[1,2](@ref)
if(!$count || !is_array($count)){
// 如果统计选项不存在或非数组,则初始化
$newcount = array(
'all' => 83760, // 初始总访问量,可设置为任意初始值[8](@ref)
'date' => $date,
'today' => $addnum // 今日访问量初始化[1,2](@ref)
);
update_option('site_count', $newcount); // 更新数据库选项[1,2](@ref)
} else {
// 统计选项已存在,则更新数据
$newcount = array(
'all' => ($count['all'] + $addnum), // 总访问量增加[1,2](@ref)
'date' => $date,
// 判断是否是同一天:是则今日访问量+1,否则重置为$addnum[1,2](@ref)
'today' => ($count['date'] == $date) ? ($count['today'] + $addnum) : $addnum
);
update_option('site_count', $newcount); // 更新数据库选项[1,2](@ref)
}
// 标记当前访客今日已计数[1,2](@ref)
$_SESSION['wb_'.$date] = $newcount['today'];
}
return;
}
// 将统计函数挂载到WordPress初始化钩子上[1,2](@ref)
add_action('init', 'wb_site_count_user');
// 输出访问统计到前端[1,2](@ref)
function wb_echo_site_count(){
session_start(); // 再次启用Session以获取当前访客序号[2](@ref)
$sitecount = get_option('site_count'); // 获取统计数组[1,2](@ref)
$date = date('ymd', time()); // 获取当前日期[1,2](@ref)
// 输出HTML内容,样式可自定义[2,6](@ref)
echo '<p>总访问量:<span style="color:#7df1ff">' . absint($sitecount['all']) . '</span> 今日访问量:<span style="color:#7df1ff">' . absint($sitecount['today']) . '</span> 您是今天第:<span style="color:#7df1ff">' . absint($_SESSION['wb_'.$date]) . '</span> 位访问者</p>';
}
放在footer.php,这是前台底部显示
<!-- 在footer.php或其他模板文件的适当位置添加 -->
<div style="text-align: center; background:#000; color:#FFF; padding: 10px;">
<?php wb_echo_site_count(); ?>
</div>
© 版权声明
THE END
暂无评论内容