您的位置:知蚁博客 » Wordpress » 让wordpress最近评论中不显示自己的评论

让wordpress最近评论中不显示自己的评论

作者: 发布时间:2011-04-08 分类:Wordpress 标签: 9,553人浏览

  最近很多朋友来博客上留言,水母在回复了一些留言后发现,最近评论模块都变成自己的留言了,要是把这些屏蔽掉就好了。
  查看了下wordpress数据库中的wp_comments表,其中字段user_id即是用于标识用户的,来自访客的留言user_id=0,有了这些信息就好办了,只要在获取comments的时候传递user_id=0这个参数就可以了。

  前不久水母发过一篇关于《去除最近评论中pingback和trackback评论》的文章,具体的修改方法都差不多,只不过这次换成user_id这个参数,具体的修改如下:

php语言: 知蚁博客 程序设计
//找到下面这段,可以通过搜索get_comments
$comments=get_comments(array(‘number’=>$limit,‘status’=>‘approve’));
//修改为
$comments=get_comments(array(‘number’=>$limit,‘status’=>‘approve’,‘user_id’=>0));

  wordpress自带的最新评论不怎么好用,很多主题都会有自带的最新评论模块,因此要修改的地方也要根据情况来定。

wordpress自带最近评论

  在wordpress\wp-includes\default-widgets.php中先找到class WP_Widget_Recent_Comments extends WP_Widget,这个就是wordpress自带的显示最近评论的代码了,在这个里面找到上面要修改的代码(大约在643行),修改下即可。

主题自带最近评论

  最直接简单的办法就是通过在主题目录搜索“get_comments”,辛苦下找找吧,呵呵!如果有和水母用的同一个主题的,修改这个\wordpress\wp-content\themes\istudio-theme\functions.php即可。

补充

  修改完后会有个问题,就是这种方法只适用于隐藏登录后发表的回复,如果不登陆,即使用和后台管理员一样的昵称、E-mail在前台回复,依然会显示在最近评论中的,原因没有登录时候的回复写入数据库的时候user_id=0。

  如果开放了注册功能的博客,上面的修改就会有局限性了,这个时候我们只能向get_comments下手了,这个函数的路径为:\wordpress\wp-includes\comment.php。

PHP语言: 知蚁博客 程序设计
function get_comments( $args = ) {
$query = new WP_Comment_Query;
return $query->query( $args );
}

在函数WP_Comment_Query中找到$query,按照下面方式修改:

PHP语言: 知蚁博客 程序设计
//找到下面这行(327行左右)
$query = “SELECT $fields FROM $wpdb->comments $join WHERE $where ORDER BY $orderby $order $limits”;
//这个就是一个sql语句了,用于向数据库查询数据,将这个修改为下面两种之一

//在sql语句中加上不想显示的user_id,换成自己管理员账号的id即可
$query = “SELECT $fields FROM $wpdb->comments $join WHERE $where AND user_id<>1 ORDER BY $orderby $order $limits”;

//如果记不住ID,可以像下面这样修改,xxx换成发表评论时候的用户名
$query = “SELECT $fields FROM $wpdb->comments $join WHERE $where AND comment_author!=’xxx’ ORDER BY $orderby $order $limits”;

按照这个原理,还可以继续使用comment_author_email等字段,总之是想禁止谁就禁止谁啊!
原创文章请注明转载于知蚁博客,本文地址:http://www.letuknowit.com/archives/45

相关文章

16访客评论 ,博主回复7

  1. wordpress和zblog哪个主要?

    CC学生04-09 01:28 回复
    • 没怎么接触过zblog,zbolg应该是基于ASP的,wordpress基于PHP,以后应该是用wordpress的要多些吧

      知蚁04-10 18:34 回复
  2. 来学习啦! 呵呵

    • 欢迎!

      知蚁04-10 19:01 回复
  3. 来看看了!!!!!

    • 欢迎来访!

      知蚁04-10 18:32 回复
  4. google搜索到的。虽然对我的帮助不大,按时还要顶!

    DH07-18 14:40 回复
    • 好荣幸啊,竟然是通过搜索来的,呵呵

      知蚁07-18 20:21 回复
  5. 使用了,奏效了,多谢分享!

    JeansYang09-01 12:45 回复
  6. 刚好遇到这个问题,试试看

    09-20 20:19 回复
  7. 博主你好, 对于开放了注册功能的博客,用你的 修改方法“user_id(想禁止的用户)”,也只能针对某一人不显示。但是我们需要的是不显示作者自身的留言。而不是针对某一个人

    我爱聊吧11-02 11:23 回复
  8. 正好想解决这个问题

    幻影博客11-06 14:16 回复
  9. 终于找到了 :mrgreen:

  10. :razz: 学习了

    涛米08-10 12:42 回复
  11. 都没有针对functions.php的方法啊,逼我用插件

    随意博客01-02 04:27 回复
  12. 知蚁,我想实现,除了登陆账号自己的评论,别人的评论都看不到,而只有我指定的用户可以看到所有评论。怎么实现?

    阿策03-04 09:33 回复
  13. 就是只显示当前登陆用户的评论 $query = “SELECT $fields FROM $wpdb->comments $join WHERE $where AND user_id=’当前用户ID’ ORDER BY $orderby $order $limits”; 当前用户ID 的获取代码是什么?

    阿策03-04 10:16 回复
  14. 等了一天了,博主怎么还不来啊?

    阿策03-04 22:27 回复
    • 带孩子呢,上博客上的少了

      知蚁03-06 22:11 回复
  15. 学习了~我添加了那个User_ID=>0但是主页还是有自己的评论 不知道为什么

    晴刃03-05 13:28 回复
  16. 百度搜索到的 正需要修改这个问题 请问 //在sql语句中加上不想显示的user_id,换成自己管理员账号的id即可 是自己的用户名吗 如果管理员账号id是123 是要怎么改哦

    一季花落07-11 13:39 回复
    • wordpress后台左侧有个用户选项,点击进入会看到用户列表,把鼠标放到用户名上,就可以看到浏览器左下角会显示url地址(如果不行就直接点击,然后看浏览器的地址栏),这个url地址中就有user_id

      知蚁07-23 19:26 回复

我来说说

(必须)

(必须,保密)

你确定你已经看过文章了?
取消

无觅相关文章插件,快速提升流量