1. 程式人生 > >DIY網站統計:WordPress排除管理員評論及精準友鏈數的方法

DIY網站統計:WordPress排除管理員評論及精準友鏈數的方法

今天關注了一下網站統計,發現留言 1600+,想想肯定是把我自己的留言也算進去了,感覺太水了,不真實!另外友鏈數目也不對,明顯是把所有連結都加進去了!

DIY網站統計:Wordpress排除管理員評論及精準友鏈數的方法

於是研究了一下統計程式碼,在排除自己的評論、以及友鏈之外的連結後,留言直接縮水到 800+、友鏈也變成準確的 16 個了,這下踏實多了,博主最不喜歡的就是虛誇的資料了(包括文章 view 數,俺都一直只記錄遊客訪問數)!

DIY網站統計:Wordpress排除管理員評論及精準友鏈數的方法

現在來記錄下 DIY 過程,方便有需要的人:

先貼出知更鳥主題的統計程式碼(注:知更鳥主題這段程式碼在:includes/statistics.php,其他主題一般在側欄模組):

PHP
12345678910111213 <h3>網站統計</h3><div class="statistics"><div class="box_c"><ul>文章:<?php$count_posts=wp_count_posts();echo$published_posts=$count_posts->publish;?></ul><ul>評論:<?phpecho$wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments"
);?></ul><ul>分類:<?phpecho$count_categories=wp_count_terms('category');?></ul><ul>標籤:<?phpecho$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>執行:<?phpechofloor((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
1 <?phpecho$wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments ");?>

進入 phpMyAdmin 看了下表結構:

DIY網站統計:Wordpress排除管理員評論及精準友鏈數的方法

看來只要加個條件就可以排除指定的評論了,比如可以用郵箱、暱稱或 ID 作為排除條件。經過分析,個人認為用 ID 是最準確的,因為我換過 3 次郵箱,也改過幾次暱稱,如果硬要用郵箱或者暱稱來排除的話,我必須要加入所有用過的郵箱或暱稱,這樣以來,查詢效率自然就低了,於是我最終改成如下程式碼:

PHP
1 <ul>評論:<?phpecho$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 的評論

PHP
1 <ul>評論:<?phpecho$wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments where user_id!='1' and user_id!='2'");?></ul>

關於統計中如何排除管理員評論就說這麼多了,下面說一下友鏈數的呼叫:

知更鳥預設的友鏈呼叫程式碼如下:

PHP
1 <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 值):

PHP
1 <ul>友鏈:<?php$link=$wpdb->get_var("SELECT COUNT FROM $wpdb->term_taxonomy WHERE term_id='75'");echo$link;?></ul>

噢啦!很小白的教程,希望對一些不懂資料庫和 PHP 的朋友有所幫助吧!