好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

wordpress禁止没有Gravatar头像的访客提交评论 - Wo

wordpress禁止没有Gravatar头像的访客提交评论

为了防止垃圾评论各种方法都想尽了,下面我看网站有人说在wordpress禁止没有Gravatar头像的访客提交评论也可以防止机器提交了广告了,下面我们来看看.

1 为何限制没有Gravatar头像的访客

前几天博主就一直在想着是否要限制没有gravatar头像的用户在博客留言,主要原因有三点:

1、博客使用的是wordpress程序,而Gravatar早在07年就被Automattic公司收购并在wp程序上发扬光大,所以,wp博客和gravatar头像天生就是一对,当然要让他们在一起了.

2、屏蔽广告。很多spamer都是没有gravatar头像的,限制没有gravatar头像的访客就等于过滤掉了相当一部分的垃圾广告,扯远一点,多说插件为众多广告商做出了巨大贡献.

3、屏蔽毫无意义的评论。

一般没有gravatar头像的访客不会活跃在博客圈,大多是有问题就找你,一解决就拍屁股走人,博主深有体会,之前写了一篇《动易官方论坛的邀请码》,很多人拿到邀请码后连句谢谢都没有,博客本来就是一个交流的平台,失去了和用户的交互,那就没有任何意义了,所以,为了提升博客整体质量,需要屏蔽这部分访客.

那么接下来就说说实现[wordpress中限制没有Gravatar头像的访客提交评论]的具体方法:

2 判断是否具有Gravatar头像的函数

在functions.php中添加下面的函数,其作用是根据提交的email字段判断该留言者是否具有gravatar头像,还有种方法是通过http://www.gravatar.com/avatar/获取到头像文件的大小值是否为2637k来判断,具体方法大家可以参考《再议Gravatar头像缓存至本地服务器》中的代码,代码如下:

/*       * @author:vfhky 2013年09月11日20:23       * @param string $email 用户提交的表单中的email字段       * @return int 0:无gravatar头像; 1:有gravatar头像       **/        function  vfhky_checkgravatar( $email ){       $email_hash  = md5( strtolower (trim( $email )));       $check_uri  =  'http://www.gravatar.com/avatar/'  .  $email_hash  .  '?d=404' ;       $headers  = @get_headers( $check_uri );       if  (!preg_match( "|200|" ,  $headers [0])) {       return  0;      }       else  { return  1;}      } 

3 在comments-ajax.php中调用判断函数

gravatar头像判断函数完成后,就可以在Willin Kan大神的comments-ajax.php文件中调用了,大概在该文件的90行处,在原代码中加入判断函数进行调用即可,代码如下:

/*       * @author:vfhky 2013年09月11日20:30       * @param string $comment_author_email 用户提交的表单中的email字段       **/        if  ( ! $user ->ID ) {       if  ( 6 >  strlen ( $comment_author_email ) ||  ''  ==  $comment_author  )      err( __( '提示:必须填写昵称及邮件。' ) );       elseif  ( !is_email( $comment_author_email ))      err( __( '提示:请输入一个有效的电子邮件地址。' ) );       elseif  (vfhky_checkgravatar( $comment_author_email ) == 0)      err( __( '请使用Gravatar头像留言。' ) );      } 

4 后记: wordpress中限制没有Gravatar头像的访客提交评论,简单两步就实现了限制没有Gravatar头像的访客提交评论,当然,这个功能也可以用jquery实现,不过,一旦用户浏览器屏蔽了js,那么也就没效果了,所以,综合考虑还是用服务器端判断更为安全可靠,虽然增加了额外资源的消耗.

查看更多关于wordpress禁止没有Gravatar头像的访客提交评论 - Wo的详细内容...

  阅读:45次