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 的朋友有所帮助吧!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨建荣的学习笔记

复杂SQL性能优化的剖析(二)(r11笔记第37天)

昨天的一篇文章复杂SQL性能优化的剖析(一)(r11笔记第36天) 分析了一个SQL语句导致的性能问题,问题也算暂时告一段落,因为这个语句的执行频率是1...

37190
来自专栏杨建荣的学习笔记

通过top命令抓取cpu高消耗的sql (44天)

top命令在linux环境维护中很实用,虽然功能缺失不够sar那么全面。今天和大家分享一个通过top命令来抓取性能sql的案例。 通过top命令抓取了如下的信息...

40160
来自专栏Keegan小钢

App项目实战之路(六):数据库篇

上一篇文章[服务端篇]提到本项目的数据库采用了关系型的 MySQL,那么,本文将基于 MySQL 聊聊本项目的数据库设计。

20430
来自专栏数据和云

全表扫描却产生大量db file sequential read一例

编辑手记:一条看似简单的SQL,执行时间异常惊人,明明是全表扫描,却在undo 表空间产生大量的单块读导致db file sequential read等待事件...

37640
来自专栏杨建荣的学习笔记

物化视图中的统计信息导致的查询问题分析和修复 (r7笔记第47天)

今天开发的同事下午反馈给我一个问题,说有操作直接卡住了,听这个描述,感觉很可能是查询慢了。 于是连接到环境中,查看了一下正在执行的sql语句情况,发现下面的语句...

35750

所有您需要了解的关于Elasticsearch 5.0:索引管理

我们看到两种主要的Elasticsearch索引使用模式 - 全局索引和滚动索引。多年来,Elasticsearch增加了一些功能,可以极大地改善这些模式的工作...

45030
来自专栏CDA数据分析师

【干货】大数据量下,58同城mysql实践!

WOT(World Of Tech)2015,互联网运维与开发者大会将在北京举行,会上58同城将分享《大数据量下,58同城mysql实战》的主题,干货分享抢先看...

29390
来自专栏Java Web

SpringBoot技术栈搭建个人博客【项目准备】

总体目标:设计一套自适应/简洁/美观/易于文章管理发布的一个属于我个人的博客,最后一页能展示我个人的简历,因为大三快结束了马上就该去找工作了...哦忘了,最重要...

50380
来自专栏Java架构沉思录

MySQL在并发场景下的优化手段

对于数据库系统来说在多用户并发条件下提高并发性的同时又要保证数据的一致性一直是数据库系统追求的目标,既要满足大量并发访问的需求又必须保证在此条件下数据的安全,为...

16420
来自专栏恰童鞋骚年

SQL Server为啥使用了这么多内存?

原文地址:http://support.microsoft.com/gp/anxin_techtip6/zh-cn

20410

扫码关注云+社区

领取腾讯云代金券