整理评论头像不显示方法

今天打开自己的博客,发现我的评论头像全都挂了,同时也看到Junan也给我留言说

评论头像 挂了~~改一下吧~~

看来真的不妙了,我以为是网络问题呢。。。后来又看到其他几个博友的头像也挂了,我首先想到了不是又被某组织给墙了吧?

真杯具。。。

在群里寻求帮助,yu发了一个解决方法

http://www.yublogger.info/?p=655

同时,我搜了一下,也看到了其他不同的解决方法,现整理如下:

1、yu提供的方法

到wp-includes文件夹下找到pluggable.php 文件 找到(1645行左右。)

  1. if ( is_ssl() ) {  
  2. $host = 'https://secure.gravatar.com';  
  3. else {  
  4. if ( !emptyempty($email) )  
  5. $host = sprintf( "http://%d.gravatar.com", ( hexdec( $email_hash{0} ) % 2 ) );  
  6.  else  
  7. $host = 'http://0.gravatar.com';</pre>  
  8. 改成  
  9. <pre lang="PHP">if ( is_ssl() )  
  10. $host = 'https://secure.gravatar.com';  
  11. else  
  12. $host = 'http://www.gravatar.com';  

2、同样也是在wp-includes文件夹下找到pluggable.php 文件找到(1645行左右)

  1. if ( is_ssl() ) {  
  2.         $host = 'https://secure.gravatar.com';  
  3.     } else {  
  4.         if ( !emptyempty($email) )  
  5.             $host = sprintf( "http://%d.gravatar.com", ( hexdec( $email_hash{0} ) % 2 ) );  
  6.         else  
  7.             $host = 'http://0.gravatar.com';  
  8.     }  

将其中的”http://%d.gravatar.com“,”http://0.gravatar.com“改为”http://www.gravatar.com“

即:

  1. if ( is_ssl() ) {  
  2.         $host = 'https://secure.gravatar.com';  
  3.     } else {  
  4.         if ( !emptyempty($email) )  
  5.             $host = sprintf( "http://www.gravatar.com", ( hexdec( $email_hash{0} ) % 2 ) );  
  6.         else  
  7.             $host = 'http://www.gravatar.com';  
  8.     }  

其实以上两种方法原理就是使用“www.gravatar.com”这个Gravatar主站的服务器代替“0.gravatar.com”或者其他被墙掉的服务器,虽然速度还是很慢,但是最起码比头像不加载好得多。

3、Gravatar头像本地化
①.首先下载gravatar头像本地化组件,解压缩,上传,路径自定义,如在根目录下建立gravatar目录。
②.gravatar 目录内应该有两个文件夹: cache 和 profile;三个文件: index.php, .htaccess, mysql.sql。
③.更改cache文件夹的权限为777以顺利完成头像的缓存。
④.本地新建一个php文件,写入以下内容,文件名 avatar.php,上传至profile文件夹内。请自行更改相应内容符合自己的需求,切记要放置默认头像。

  1. $config['default'] = 'http://domain.com/default-gravatar.png';//无头像时返回的默认头像路径  
  2. $config['rating'] = 'PG';//gravatar的内容级别  
  3. $config['size'] = 64;//头像尺寸  

⑤.编辑.htaccess文件(注意不是根目录下面的.htaccess文件,而是组件包内的.htaccess文件),默认

  1. RewriteRule . index.php [L]  

请依照你的实际放置目录修改,比如:

  1. RewriteRule . /gravatar/index.php [L]  

⑥.修改 wp-includes/pluggable.php:大概在1523行处有一个如下的代码,把if开始到endif结束替换为下面的代码。

  1. <?php  
  2.  if ( !function_exists( 'get_avatar' ) ) :  
  3.  /  Retrieve the avatar for a user who provided a user ID or email address.  
  4.    @since 2.5  
  5.   @param int|string|object $id_or_email A user ID,  email address, or comment object  
  6.   @param int $size Size of the avatar image  
  7.   @param string $default URL to a default image to use if no avatar is available  
  8.   @param string $alt Alternate text to use in image tag. Defaults to blank  
  9.   @return string <img> tag for the user's avatar  
  10.  /  
  11.  function get_avatar( $id_or_email$size = '96', $default = ''$alt = false ) {  
  12.      if ( ! get_option('show_avatars') )  
  13.          return false;  
  14.    
  15.     if ( false === $alt)  
  16.          $safe_alt = '';  
  17.      else  
  18.          $safe_alt = esc_attr( $alt );  
  19.    
  20.   
  21.     if ( !is_numeric($size) )  
  22.          $size = '96';  
  23.    
  24.   
  25.     $email = '';  
  26.      if ( is_numeric($id_or_email) ) {  
  27.          $id = (int) $id_or_email;  
  28.          $user = get_userdata($id);  
  29.          if ( $user )  
  30.              $email = $user->user_email;  
  31.      } elseif ( is_object($id_or_email) ) {  
  32.          if ( isset($id_or_email->comment_type) && '' != $id_or_email->comment_type && 'comment' != $id_or_email->comment_type )  
  33.              return false; // No avatar for pingbacks or trackbacks  
  34.    
  35.   
  36.         if ( !emptyempty($id_or_email->user_id) ) {  
  37.              $id = (int) $id_or_email->user_id;  
  38.              $user = get_userdata($id);  
  39.              if ( $user)  
  40.                  $email = $user->user_email;  
  41.          } elseif ( !emptyempty($id_or_email->comment_author_email) ) {  
  42.              $email = $id_or_email->comment_author_email;  
  43.          }  
  44.      } else {  
  45.          $email = $id_or_email;  
  46.      }  
  47.    
  48.   
  49.     
  50.          $host = 'http://2days.org';  //注意这里要修改为你的博客的地址  
  51.    
  52.   
  53.     if ( !emptyempty($email) ) {  
  54.          $out = "$host/gravatar/cache/avatar/";  
  55.          $out .= md5( strtolower$email ) );  
  56.          
  57.          $avatar = "<img alt='{$safe_alt}' src='{$out}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";  
  58.      } else {  
  59.          $avatar = "<img alt='{$safe_alt}' src='{$default}' class='avatar avatar-{$size} photo avatar-default' height='{$size}' width='{$size}' />";  
  60.      }  
  61.    
  62.   
  63.     return apply_filters('get_avatar', $avatar$id_or_email$size$default$alt);  
  64.  }  
  65.  endif;  
  66.  ?>  

到这里把Gravatar头像缓存到本地的工作就完成了详细的步骤可以点击这里去查看。

以上来自飞晏博客,部分修改。

好了,修改完毕以后打开你的文章页,看看评论者的头像是不是都显示出来了?

历史上的今天:

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
avatar
十年沉船,苍苔不生。
阿甘的爱情
十年·肖申克的救赎影评
埃微I5plus

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:63   其中:访客  34   博主  27

    • avatar 邪恶漫画 1

      野火烧不尽春风吹又生。。。

      • avatar 两天小说吧 7

        按饮茶要领煮茶叶蛋

        根据沏茶温度宜在80-90℃的饮茶要领,做茶叶蛋的方法:试着在蛋煮熟并敲碎后待水温略降时放入茶叶和调料浸泡. 这样制作的茶叶蛋茶香更浓. 要注意的是, 第二天吃前加温也不要煮沸.

        • avatar So啦网址导航 7

          2 熬补药的方法

          补药要熬煎得法, 功效才高.

          (1)最好用有盖的陶瓷砂锅. 先将药物用净冷水浸泡药物吸水涨起后, 再加些水,以略淹过药物为宜.

          (2)炉煎时, 先用旺火, 待药煮沸后再改用微火, 以免药汁溢出或过快熬干. 煎药时可用筷子将药翻动 但不要频频掀锅, 以减少药物成分损失.

          (3)煎药时间大约为:头煎煮沸后熬40~50分钟;二煎煮沸40分钟左右. 如煎药时间未到, 发现水少时, 可加水再煎.

          • avatar 两天小说吧 7

            熬和烩的不同点

            熬和烩, 都是用片、块、丁、丝、条等小型原料, 先煸炒断生, 然后加调料和汤汁煮熟.

            所不同的是, 熬的原料单一, 不勾芡, 如熬白菜. 而烩常是多种原料, 出锅时须勾芡, 如烩 鸭四件等.

            • avatar So啦网址导航 7

              4 熬粥如何防溢

              熬大米粥、小米粥, 或檬C追拱局? 稍不注意便会溢锅. 如果在熬粥时往锅里加5~6滴植物油或动物油, 就可避免粥汁溢锅了

              • avatar So啦 7

                未曾清贫难成人,不经打击总天真!

                • avatar TXT小说吧 7

                  有时候,这个世界很大很大,大到我们一辈子都没有机会遇见。有时候,这个世界又很小很小,小到一抬头就看见了你的笑脸。所以,在遇见时,请一定要感激;相爱时,请一定要珍惜;转身时,请一定要优雅;挥别时,请一定要微笑。

                  • avatar So啦 7

                    哎。。。

                    • avatar 玻璃棉 2

                      不错不错 支持

                      • avatar So啦 7

                        野火烧不尽春风吹又生。。。

                        • avatar 竹下无为梦 4

                          没这么复杂吧?

                          • avatar 秦大少 4

                            我用的是改域名的方法

                            • avatar Junan 6

                              修改为 WP 3.1以前的什么地址就可以喇~不用放本地缓冲~~哈~

                              我是使用 1、yu提供的方法~~哈~

                              • avatar 园子 1

                                我是缓存到本地了。

                                • avatar 三叶草 4

                                  这个code显示不错,是什么插件啊~~~