WordPress访问量统计
为了能够了解网站的热度,决定使用非插件的方式在页面上显示网站的访问量。经过多方查找教程,找到了两种个可以实现的方案,记录如下。
网站访问量统计
原文链接:https://www.laoliang.net/jsjh/technology/9383.html
访问量显示效果图

songjiahao·2022-04-15·3830 次阅读
为了能够了解网站的热度,决定使用非插件的方式在页面上显示网站的访问量。经过多方查找教程,找到了两种个可以实现的方案,记录如下。
原文链接: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 | 10 条评论
弱弱问一句,那个初始访问量,写入过一次之后,后面就无法修改了吗,好像就是以第一次为准了
@安七七 是的,我也发现了这个问题,但是没有在文章中提到,估计是直接写入到数据库了,所以没法改动。我暂时没有考虑这个问题,我当时自己给的初始值就是我当时的访问量。
@songjiahao 打开数据库,通过 SQL语句 :SELECT * FROM
wp_options
WHEREoption_name
LIKE ‘site_count’查询,修改i:后面的数字即可@安七七 有个同学评论里给了一个方法,操作数据库修改这个字段,你可以参考一下。
调用代码在哪里插入呢?是简码还是网页源代码?网页源码有点看不懂,不知道放在哪里-_-
@xuzzhan 就我用的主题而言,我放在footer.php文件中。找到“耗时xxx秒|查询xx次”这个位置就是页面底部的位置了,然后在上一行添加统计次数的调用。
请问下博主 模块化编辑的页面 怎么放php wb_echo_site_count(); 这个 正常区域新建代码 或者自定义直接插入 不显示啊