WordPress 统计排除管理员的评论数

就在刚才,Skyoy 给我留言说,如何统计 WordPress 中排除管理员以后的评论数?用过 Z-blog 的朋友都知道,Z-blog 的日志评论数是只统计管理员以外的留言者的评论数量,所以初次来到小站的 Z-blog 用户都会惊叹到,哇,你的访客评论数真不少耶~不过其实我的每篇日志也就一、两百条的评论,而我对每条留言都会一一回复,所以评论数中有一半是我自己在灌水,真实的访客留言数量并没有显示的那么多,明显虚高。

那么如何排除 WordPress 中管理员自己的留言数,显示真实的访客留言数呢?其实前辈 ishawn 已经给出了答案,我就做个二传手啦~

把以下代码复制到 WordPress 主题文件夹中的 functions.php 的<?php 和 ?> 之间:

function no_admin_number($no='', $one='', $twomore='') {
global $wpdb, $tablecomments, $post;
$comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_post_ID = $post->ID AND comment_type = '' AND comment_approved = '1' AND comment_author != '博主姓名'");
$cnt = count($comments);
if (!$cnt)
echo $no;
elseif ($cnt == 1)
echo $one;
else
echo str_replace("%", $cnt, $twomore);
}

然后在 comments.php 或者其他地方,替换原本的

<?php comments_number('No Comment', 'One Comment', '% Comments' );?>

替换成:

<?php no_admin_number('No Comment', '1 Comment', '% Comments');?>

这样就可以了,Wordpress 的评论数也就不会显得特别夸张了,不过评论数本来就不多的朋友可以无视这个方法,把自己的留言数也撑撑场面,哈哈。