DIY网站统计:WordPress排除管理员评论及精准友链数的方法
今天关注了一下网站统计,发现留言 1600+,想想肯定是把我自己的留言也算进去了,感觉太水了,不真实!另外友链数目也不对,明显是把所有链接都加进去了!
于是研究了一下统计代码,在排除自己的评论、以及友链之外的链接后,留言直接缩水到 800+、友链也变成准确的 16 个了,这下踏实多了,博主最不喜欢的就是虚夸的数据了(包括文章 view 数,俺都一直只记录游客访问数)!
现在来记录下 DIY 过程,方便有需要的人:
先贴出知更鸟主题的统计代码(注:知更鸟主题这段代码在:includes/statistics.php,其他主题一般在侧栏模块):
<h3>网站统计</h3>
<div class="statistics">
<div class="box_c">
<ul>文章:<?php $count_posts = wp_count_posts(); echo $published_posts = $count_posts->publish;?>篇</ul>
<ul>评论:<?php echo $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments");?>条</ul>
<ul>分类:<?php echo $count_categories = wp_count_terms('category'); ?>个</ul>
<ul>标签:<?php echo $count_tags = wp_count_terms('post_tag'); ?>个</ul>
<ul>友链:<?php $link = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->links WHERE link_visible = 'Y'"); echo $link; ?>个</ul>
<ul>运行:<?php echo floor((time()-strtotime(get_option('swt_builddate')))/86400); ?>天</ul>
最后更新:<?php $last = $wpdb->get_results("SELECT MAX(post_modified) AS MAX_m FROM $wpdb->posts WHERE (post_type = 'post' OR post_type = 'page') AND (post_status = 'publish' OR post_status = 'private')");$last = date('Y年m月d日', strtotime($last[0]->MAX_m));echo $last; ?>
</div>
<div class="clear"></div>
</div>
其中,获取评论条数的代码是:
<?php echo $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments ");?>
进入 phpMyAdmin 看了下表结构:
看来只要加个条件就可以排除指定的评论了,比如可以用邮箱、昵称或 ID 作为排除条件。经过分析,个人认为用 ID 是最准确的,因为我换过 3 次邮箱,也改过几次昵称,如果硬要用邮箱或者昵称来排除的话,我必须要加入所有用过的邮箱或昵称,这样以来,查询效率自然就低了,于是我最终改成如下代码:
<ul>评论:<?php echo $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments where user_id!='1'");?>条</ul>
其实就是在 select 语句中加入了 where 判断而已,where user_id!='1' 就是排除 id=1 的评论,而管理员的 ID 值一般都为 1,当然如果你有多个管理员,只要去 phpMyAdmin 中找到对应的 ID,然后加入其中即可,如下代码则为排除帐号 ID 为 1 以及 ID 为 2 的评论:
<ul>评论:<?php echo $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments where user_id!='1' and user_id!='2'");?>条</ul>
关于统计中如何排除管理员评论就说这么多了,下面说一下友链数的调用:
知更鸟默认的友链调用代码如下:
<ul>友链:<?php $link = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->links WHERE link_visible = 'Y'"); echo $link; ?>个</ul>
如此调用将会获得所有链接的数量,比如玛思阁除了友情链接之外,还有一大把的互推联盟的站点链接,所以这样得到的数量就远远多于友链的数目了,我就再折腾一下好了,如下将 count(*) 改成 count、将 link_visible='Y' 改term_id='75' 即可(75 请改成你的友情链接的 ID 值):
<ul>友链:<?php $link = $wpdb->get_var("SELECT COUNT FROM $wpdb->term_taxonomy WHERE term_id='75'"); echo $link; ?>个</ul>
噢啦!很小白的教程,希望对一些不懂数据库和 PHP 的朋友有所帮助吧!
- SDP(9):MongoDB-Scala - data access and modeling
- 数据清理的遗留问题处理(r6笔记第87天)
- 一次DB time抖动发现的expdp的bug(r6笔记第86天)
- Python中map函数
- 10g,11g中数据库静默安装中的细小差别(r6笔记第85天)
- SDP(8):文本式数据库-MongoDB-Scala基本操作
- SDP(7):Cassandra- Cassandra-Engine:Streaming
- TensorFlow实现神经网络入门篇
- 27.反射,类加载器,设计模式,jdk新特性
- SDP(6):分布式数据库运算环境- Cassandra-Engine
- 配置dg broker的问题分析及修复(r6笔记第84天)
- SDP(5):ScalikeJDBC- JDBC-Engine:Streaming
- SDP(4):ScalikeJDBC- JDBC-Engine:Updating
- SDP(3):ScalikeJDBC- JDBC-Engine:Fetching
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- vue3.0新特性初体验(二)
- 数据结构算法操作试题(C++/Python)——有效的括号
- 数据结构算法操作试题(C++/Python)——合并两个有序链表
- Day11 :二进制中1的个数
- 数据结构算法操作试题(C++/Python)——括号生成
- 数据结构算法操作试题(C++/Python)——合并K个排序链表
- 数据结构算法操作试题(C++/Python)——删除排序数组中的重复项
- 数据结构算法操作试题(C++/Python)——k个一组翻转链表
- 数据结构算法操作试题(C++/Python)——移除元素
- 数据结构算法操作试题(C++/Python)——实现strStr()
- 数据结构算法操作试题(C++/Python)——两数相除
- JavaScript 测试系列实战(三):使用 Mock 模拟模块并处理组件交互
- 数据结构算法操作试题(C++/Python)——串联所有单词的子串
- TypeScript 实战算法系列(九):实现向量与矩阵
- TypeScript 实战算法系列(十):实现动态规划