替换Gravatar头像默认服务器

2014年11月15日12:59:20 102 已收录 26,219

这几天Gravatar头像服务器应该集体被墙了,头像无法显示。兵来将挡,水来土掩,上有政策,下有对策,和谐社会靠大家,哈。

利用多说Gravatar头像中转服务器替代头像默认服务器。

将下面代码添加到当前主题functions.php文件中:

  1. function mytheme_get_avatar( $avatar ) {
  2. $avatar = preg_replace( "/http:\/\/(www|\d).gravatar.com/","http://gravatar.duoshuo.com",$avatar );
  3. return $avatar;
  4. }
  5. add_filter( 'get_avatar', 'mytheme_get_avatar' );

可惜多说服务稳定性欠佳,有时也会暂时无法显示头像。如编辑已发表的文章,并且文章已有评论,还需要在文章编辑页面打开右上的“显示选项”去掉“评论”勾选,否则在点击更新文章按钮后,还是会向Gravatar头像服务器发送获取头像请求,从而影响页面加载速度。

使用https方式(SSL)调用Gravatar头服务器地址

使用方法同上,将下面代码添加到主题functions.php文件中:

  1. function get_ssl_avatar($avatar) {
  2.    $avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&.*/','<img src="https://secure.gravatar.com/avatar/$1?s=$2" class="avatar avatar-$2" height="$2" width="$2">',$avatar);
  3.    return $avatar;
  4. }
  5. add_filter('get_avatar', 'get_ssl_avatar');

貌似添加以上代码后,一些头像缓存插件也将失效。

使用Gravatar Fixed 头像修正插件

插件设置页面,将Gravatar 服务器和Gravatar SSL 服务器,全部改为:https://secure.gravatar.com

插件下载页面

另一个比较笨的方法:

打开wordpress程序目录的wp-includes文件夹,找到pluggable.php(WP4.2之前版本)打开,将大约2150至2157行:

  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. }

替换为:

  1. $host = 'https://secure.gravatar.com';

或者(支持头像缓存插件)

  1. $host = 'http://cn.gravatar.com';

WP4.2之后版本,打开wordpress程序目录的wp-includes文件夹,打开link-template.php,将大约第3604行的:

  1. $url = sprintf( 'http://%d.gravatar.com/avatar/%s', $gravatar_server, $email_hash );

修改为:

  1. $url = sprintf( 'http://cn.gravatar.com/avatar/%s', $email_hash );

之所以说“笨”是因为下次更新程序,还需要再次修改,不过这个方法最实用。

以上方法主要针对使用用国内主机用户,使用国外主机这时优势突显,并不需要修改任何东西,安装头像缓存插件,将头像缓存到本地,并不影响正常使用。

推荐几款Gravatar头像缓存插件

fonts.googleapis.com和gravatar.com被墙,严重影响了Wordpress用户体验,对新手熟习Wordpress的造成极大障碍。

weinxin
我的微信
分享交流WordPress经验与技巧,关注前端设计与网站制作。仅用于功能演示。
Begin主题购买
Begin主题购买

发表评论

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

目前评论:102   其中:访客  89   博主  5

    • David 1

      呵呵,不错

        • 我爱动感单车网 7

          @David :razz: 我喜欢里面介绍的第二种方法,比较来得简单但相当实用,具体效果感兴趣的朋友可以去我博客看看哦。

            • 我爱动感单车网 7

              @我爱动感单车网 :cry: 已经用了好几个月时间,但发觉“使用https方式(SSL)调用Gravatar头服务器地址”也不给力啊,同样经常性的加载缓慢。特别是这几天慢的要死,还有什么好点办法没有?知道的朋友请给说说嘛。

          • 浩瀚 0

            博主用的什么图片播放插件?就是类似“jQuery Table of Contents”的。

            • 筛宝 2

              是用插件解决的。

              • 美Win网 4

                鸟哥用的是本地的缓存呀!

                • 广东发票 2

                  翻土代理,上网无忧

                  • Handle 0

                    因为缓存似乎很烧空间而且是https站,
                    完全懒的改代码,
                    所以默默照着方法安装插件改成https服务器的路过

                    • 涂涂小窝 1

                      一直关注鸟哥,也在向鸟哥学习 :lol:

                      • 宝赚金 3

                        头像该怎么改才行呢?

                          • boke112导航 5

                            @宝赚金 通过翻墙上gravatar官网进行注册或更换头像

                              • 宝赚金 3

                                @boke112导航 翻墙的最近都不好用 还要买vpn吗 这个

                                  • boke112导航 5

                                    @宝赚金 这个倒不用,可以试试畅游无限浏览器(自带翻墙功能),或者是百度浏览器6.5标准版,它会自动启动海外高速通道,访问gravatar官网没有问题,具体见http://boke112.com/343.html

                              • taogouqi 1

                                使用了Gravatar Fixed插件后正常显示,感谢!

                                • avas8 0

                                  来看下头像

                                  • Kylin 1

                                    ality用户删除评论会报错,版本4.2.4

                                    • 子叶 1

                                      typecho改了可以!

                                      • 李胜利博客 1

                                        不错,学习了!!!!

                                        • 艾秋 0

                                          中文中文

                                          • 陈庚华律师 0

                                            用鸟哥的主题这么久了 来留个言

                                            • 小康博客 0

                                              WP4.2版本之后改成$url = sprintf( ‘http://cn.gravatar.com/avatar/%s’, $email_hash );可以缓存吗?怎么设置缓存后后台设置讨论里面头像无法显示,前台好像正常,帮忙看下,地址:http://www.xiaokang.info/guestbook ,谢谢!

                                              • 我爱动感单车网 7

                                                本地缓存是目前最好的方式,虽然好但是自己不会弄,实在纠结的很。无奈之下只能是退而求其次,目前使用的是https方式,但愿在今后自己能够找到更好与可以长久使用的好方法吧。如果这的哪位大神能够指点一二,不胜感激 :razz:

                                                • Shion 0

                                                  不错

                                                  • daisisi2008 1

                                                    测试一下

                                                    • 众爱联盟 1

                                                      申请成功,不知道怎样给普通用户默认一个头像

                                                      • binaryjp 0

                                                        gravatar.com是不是无法做镜像了

                                                        • 网赚 2

                                                          正好用到,多谢了

                                                          • 片段艺文志 3

                                                            放上这些代码后,后台头像变大了,不知道怎么回事?

                                                              • 我辈博客 1

                                                                @片段艺文志 SSL方法吧。默认会放大2倍,前台不影响使用。强迫症的话可以把height=”$2″ width=”$2″中的$2改为50,但是弊端就是尺寸固定了,都是50*50的

                                                              • 福利社 0

                                                                我替换完了,但是想换个图片,就是换不了 :cry: :cry: :cry:

                                                                • 金融大亨 2

                                                                  感觉还是不要用这个插件了,特别坑……

                                                                  • 伍仪洲 0

                                                                    请问一下博主是如何解决评论慢的问题呢?

                                                                    • aliyun 0

                                                                      gravatar还能用?

                                                                      • 陈大猫 0

                                                                        WP4.2之后版本,打开wordpress程序目录的wp-includes文件夹,打开link-template.php
                                                                        ——
                                                                        我这几天一直保守困扰,明明在主题函数文件里修改了ssl替换为国内资源的地址,为什么还是调用的官方的https源,看了你这篇博文测试后才知道原来在上面这个文件里还有这么一处代码,修改后,头像终于调用到国内资源了。谢谢博主。

                                                                        • 疯书生 0

                                                                          现在多说也不能用了。。