WordPress访问量统计
为了能够了解网站的热度,决定使用非插件的方式在页面上显示网站的访问量。经过多方查找教程,找到了两种个可以实现的方案,记录如下。
网站访问量统计
原文链接:https://www.laoliang.net/jsjh/technology/9383.html
songjiahao·2022-04-15·3096 次阅读
为了能够了解网站的热度,决定使用非插件的方式在页面上显示网站的访问量。经过多方查找教程,找到了两种个可以实现的方案,记录如下。
原文链接:https://www.laoliang.net/jsjh/technology/9383.html
这里做了精简,只显示了总访问量和今日访问量,并且该访问量统计为网站的访问次数,不是所有文章的浏览次数,所以一般情况下会比文章的总阅读次数高一些。
将以下代码追加到主题的functions.php
文件中,请留心是否有函数名重复,如果出现函数名重复,则会报错。
//添加到functions.php中
/**
* 统计全站总访问量/今日总访问量/当前是第几个访客
* @return [type] [description]
*/
function wb_site_count_user(){
$addnum = 1; //每个访客增加的访问数
session_start();
$date = date('ymd',time());
if(!isset($_SESSION['wb_'.$date]) && !$_SESSION['wb_'.$date]){
$count = get_option('site_count');
if(!$count || !is_array($count)){
$newcount = array(
'all' => 30142, //初始访问量,可以设置为自己当前的访问量
'date' => $date,
'today' => $addnum
);
update_option( 'site_count', $newcount );
}else{
$newcount = array(
'all' => ($count['all']+$addnum),
'date' => $date,
'today' => ($count['date'] == $date) ? ($count['today']+$addnum) : $addnum
);
update_option( 'site_count', $newcount );
}
$_SESSION['wb_'.$date] = $newcount['today'];
}
return;
}
add_action('init', 'wb_site_count_user');
//输出访问统计
function wb_echo_site_count(){
session_start();
$sitecount = get_option('site_count');
$date = date('ymd',time());
echo '<p>总访问量:<span style="color:#b9b9b9">'.absint($sitecount['all']).'</span> 今日访问量:<span style="color:#b9b9b9">'.absint($sitecount['today']).'</span></p>';
}
在需要显示的区域添加以下代码来输出访问统计信息:
<?php wb_echo_site_count(); ?>
转自张戈的博客。
实现思路为对数据库中的所有文章访问量进行求和。将以下代码追加到主题的functions.php
文件中,然后在需要显示的地方调用函数即可。请留心是否有函数名重复,如果出现函数名重复,则会报错,修改使用不同的函数名即可解决。代码如下:
/**
* WordPress 获取文章浏览总数优化版 By 张戈博客
* 文章地址:https://zhang.ge/551.html
* 转载请保留原文出处,谢谢合作!
*/
function lo_all_view(){
global $wpdb;
$count = $wpdb->get_var("SELECT sum(meta_value) FROM $wpdb->postmeta WHERE meta_key='views'");
return $count;
}
在需要显示的区域添加以下代码来输出访问统计信息:
<?php lo_all_view(); ?>
Comments | 9 条评论
博客作者 安七七
弱弱问一句,那个初始访问量,写入过一次之后,后面就无法修改了吗,好像就是以第一次为准了
博客作者 songjiahao
@安七七 是的,我也发现了这个问题,但是没有在文章中提到,估计是直接写入到数据库了,所以没法改动。我暂时没有考虑这个问题,我当时自己给的初始值就是我当时的访问量。
博客作者 倦意
@songjiahao 打开数据库,通过 SQL语句 :SELECT * FROM
wp_options
WHEREoption_name
LIKE ‘site_count’查询,修改i:后面的数字即可博客作者 songjiahao
@安七七 有个同学评论里给了一个方法,操作数据库修改这个字段,你可以参考一下。
博客作者 xuzzhan
调用代码在哪里插入呢?是简码还是网页源代码?网页源码有点看不懂,不知道放在哪里-_-
博客作者 songjiahao
@xuzzhan 就我用的主题而言,我放在footer.php文件中。找到“耗时xxx秒|查询xx次”这个位置就是页面底部的位置了,然后在上一行添加统计次数的调用。