You are here: Home » All Categories » » WordPress变态需求: 获取文章的评论人数

WordPress变态需求: 获取文章的评论人数

Apr 5th, 2012 17:34 | Leave a comment?(72) Go to comments

为什么我说是“变态需求”呢?因为折腾WP主题这么久,我从来没接触过/听说过有人需要获取文章的评论人数,对,评论人数!不是评论数,同一个人发1条、10条、100条评论也只能算1人。

既然没人需要或者很少人需要,那么就难于找到相关方法了,我也查看过WordPress相关函数,木有这类直接的输出或者简单就能获取“评论人数”的方法/函数。

肿么办?先偷懒,于是我问 qiqiboy,万戈有木有折腾过这类需求,有没有方法,得到答案是:没听说过也没折腾过……qiqibly说可以用SQL解决,但我不怎么会SQL啊……

好吧,我在问以前就想到一个比较蛋疼的方法,只是想偷懒没去测试……这下没办法了,只能自己YY折腾了。

经过一番测试,搞定,代码如下:扔到主题的 functions.php 文件里面
(牢骚 - 代码懒得高亮了,以后也想把所有代码高亮去掉,主要是我用的是直接html方法……)

/* 获取文章的评论人数 by zwwooooo | zww.me */
function zfunc_comments_users($postid=0,$which=0) {
	$comments = get_comments('status=approve&type=comment&post_id='.$postid); //获取文章的所有评论
	if ($comments) {
		$i=0; $j=0; $commentusers=array();
		foreach ($comments as $comment) {
			++$i;
			if ($i==1) { $commentusers[] = $comment->comment_author_email; ++$j; }
			if ( !in_array($comment->comment_author_email, $commentusers) ) {
				$commentusers[] = $comment->comment_author_email;
				++$j;
			}
		}
		$output = array($j,$i);
		$which = ($which == 0) ? 0 : 1;
		return $output[$which]; //返回评论人数
	}
	return 0; //没有评论返回0
}

调用方法

<?php echo zfunc_comments_users($postid); ?>

参数说明:$postid 是需要获取评论人数的文章ID

一般用法:在一般主题的loop里面可以这样用:

<?php echo zfunc_comments_users($post->ID); ?>

PS:还可以输出评论总数,用法:

<?php echo zfunc_comments_users($postid, 1); ?>

折腾玩(完)。

声明: 除非注明,ZWWoOoOo文章均为原创,转载请以链接形式标明本文地址
本文地址: http://zww.me/archives/25613

Filed under

| Tags:

, ,

Related Posts

Most Popular

72 Comments.

⊕Leave a comment?
  1. Bolo Bolo Google Chrome 18.0.1025.151Mac OS X 10.7.3

    你忘了加上comment_type限制啊,这样pingbackh和trackback都会一起统计进来的

    31楼
  2. 冠朔wordpress插件 冠朔wordpress插件 Google Chrome 17.0.963.79Windows 7 x64 Edition

    这个功能暂时还不需要。

    32楼
  3. 锁匠工具 锁匠工具 Firefox 11.0Windows 7

    :razz: 我也要好好学习一下了,这些知识很有用,他的邻居的确太寂寞了!

    33楼
  4. 小邪 小邪 Google Chrome 18.0.1025.163Mac OS X 10.7.3

    额,SQL:

    SELECT COUNT( DISTINCT `comment_author` )
    FROM `wp_comments`
    WHERE `comment_post_ID` =141

    34楼
    • 小邪 小邪 Google Chrome 18.0.1025.163Mac OS X 10.7.3

      @小邪
      啊啊,141 是我刚才测试时候用的文章ID >w<

    • zwwooooo zwwooooo Firefox 11.0Windows 7 x64 Edition

      @小邪
      哈,竟然忘了小邪,下次有sql的问题请教小邪,啦啦啦。另外,最近长草的博客真多,别忘了除草

  5. emric emric Google Chrome 18.0.1025.152Windows Server 2003

    循环显示分类的函数我在想有还素木有, 这个应该有吧,
    想在category.php显示他的子分类 = 口 =

    35楼
    • zwwooooo zwwooooo Firefox 12.0Windows 7 x64 Edition

      @emric
      这个可以实现,查看相关函数

    • emric emric Google Chrome 18.0.1025.152Windows Server 2003

      @zwwooooo
      = = 就素找不到,看文档基本都是排列出全部分类,

    • zwwooooo zwwooooo Firefox 12.0Windows 7 x64 Edition

      @emric
      给个思路给你:获取category.php当前分类ID(这个我写过) 》给列出分类的函数加“列出当前分类下的子分类”参数,具体查看官方文档。

  6. 我运动网 我运动网 Internet Explorer 8.0Windows XP

    这当然比评论数更有说服力啦

    36楼
  7. 苍井空 苍井空 Firefox 12.0Windows XP

    这个函数不错,刚使用了下。谢谢分享

    37楼
  8. 新号外 新号外 Firefox 12.0Windows XP

    这种需求也叫变态?只能算一般吧。。。

    38楼
  9. 新号外 新号外 Firefox 12.0Windows XP

    没看文章前,我第一想到的就是group by 一下,完全可以搞定。。。

    39楼
  10. NONO NONO Google Chrome 19.0.1084.52Windows 8

    真的是很变态的需求

    40楼
  11. coach outlet coach outlet Google Chrome 18.0.1025.168Windows XP

    学习了 代码不错

    41楼
  12. 鼬 Google Chrome 20.0.1132.57Windows XP

    请教博主高亮代码用的是什么插件,谢谢。

    42楼
  13. W3Cshare W3Cshare Google Chrome 22.0.1229.94Windows 7

    有什么方法可以获取当前文章id的最新评论显示在首页的每篇文章下面

    43楼

Leave a Reply


Trackbacks and Pingbacks:

Welcome! o(∩_∩)o
X