解决Gravatar被墙后wordpress博客无法显示头像的问题【2016.09.08修正版】

  • 539

之前曾经写过:教你怎么在WordPress博客里显示自定义头像一文,不过后来Gravatar的CDN服务器被墙,导致非常多的wordpress博客头像无法显示,我的博客也没有幸免,不过修改了CDN服务器后已经正常了,今天发现,依然有很多朋友不知道怎么办,所以分享一下解决的方法,个人推荐方法三
解决Gravatar被墙后wordpress博客无法显示头像的问题【2016.09.08修正版】

方法一

使用Gravatar头像修正扩展,将扩展下载,安装到wordpress后,选择设置--Gravatar头像

解决Gravatar被墙后wordpress博客无法显示头像的问题【2016.09.08修正版】

 

方法二

在FTP服务器上修改wp-includes下的pluggable.php文件,这个方法无视主题,更换主题后依然有效
将:

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

 

修改为:

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

 

方法三

强烈推荐使用方法三,修改主题目录下的functions.php文件,在最下面的?>前加上如下代码即可将Avatar头像改为国内的CDN服务器上,而且支持SSL:

  1. /* Avatar改用国内CDN公共库缓存链接
  2. /* -------------------------------------- */
  3. function mytheme_get_avatar( $avatar ) {
  4. $avatar = str_replace(array("www.gravatar.com","0.gravatar.com","1.gravatar.com","2.gravatar.com","secure.gravatar.com","cn.gravatar.com/"),"gravatar.moefont.com",$avatar);
  5. return $avatar;
  6. }
  7. add_filter( 'get_avatar', 'mytheme_get_avatar' );

其实还有改host和使用头像缓存扩展的方法,但是阿斯兰不是很推荐,使用缓存扩展,会导致没有注册gravatar的评论无法显示默认头像,而改host更加的繁琐,没必要!

评论  4  访客  3  作者  1
    • abyss
      abyss Google Chrome 43 Windows 7 2

      插件就可以搞定

      • 何朝城
        何朝城 Google Chrome 38 Windows 7 0

        看到大家的Gravatar头像被墙,我这里也提供一个用七牛搭建的Gravatar头像缓存。七牛的速度我想大家也体验过了吧!WordPress博客请将下面代码添加到当前主题的functions.php文件中即可解决。

        //=== Gravatar头像缓存 ===//
        function gravatar_cache($avatar){
        $avatar = preg_replace( "/http:\/\/(www|\d).gravatar.com/","http://gravatar.hechaocheng.cn",$avatar );
        $avatar = preg_replace( "/\?s\=/",".png?s=",$avatar );
        return $avatar;}
        add_filter( 'get_avatar', 'gravatar_cache' );

        不要感谢我,请叫我雷锋!! :razz: :razz:

        • 免费部落
          免费部落 Google Chrome 25 Windows XP 0

          我的图像有的显示,有的网站不显示怎么回事?

            • 阿斯兰萨拉
              阿斯兰萨拉 CoolNovo 2 Windows 7

              @ 免费部落 都是你的网站?还是在别人的网站不显示?

          匿名

          发表评论

          匿名网友 填写信息

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