替换Gravatar头像默认服务器

知更鸟 2014年11月15日12:59:2010030.4K112

这几天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 5.8开始将不再支持IE11浏览器 WordPress

WordPress 5.8开始将不再支持IE11浏览器

IE11浏览器已发布7年多,目前只有不到1% 用户,很多热门网站已经停止支持IE11,微软也将在今年晚些时候放弃对IE11的支持。即将在今年7月发布的WordPress 5.8也将不再支持IE11浏览...
WordPress免费高级主题:Blocksy Themes

WordPress免费高级主题:Blocksy

个人认为Blocksy主题可能是最近看过最好WordPress免费主题,其高度自定义的可视化设置功能非常强大,在不使用其它辅助插件的情况下,可以自定义几乎所有页面元素。   当然主题本身除了...
匿名

发表评论

匿名网友

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

评论:100   其中:访客  87   博主  5   引用   8
    • 大鹏 大鹏 0

      可以交换链接吗

      • 情绪21℃ 情绪21℃ 4

        这个是头像镜像服务器?多说把gravatar搞定了?

          • 眼镜男 眼镜男 1

            @ 情绪21℃ 已经搞定了,我的网站就用的多说的,其实这个方法上年这时候就有人写出来了

          • 情绪21℃ 情绪21℃ 4

            我们能在国外的服务器上自己搭个gravatar头像缓存然后让自己国内的博客调用么,发现国外一堆服务器闲置,好浪费

            • 看得见风的人 看得见风的人 6

              鸟哥,“wp slug translate”这个插件好像不好用了……有相关的替代吗?

              • 看得见风的人 看得见风的人 6

                现在后台好慢~·

                • 梦言梦语 梦言梦语 3

                  原来如此,怪不得最近总是不显示头像呢,天朝无语啊

                  • 梦言梦语 梦言梦语 3

                    问题已解决,谢谢鸟哥

                    • Louis Han Louis Han 6

                      多说也是倒霉孩子

                      • smartpu smartpu 0

                        感谢鸟哥,参照更新后问题解决。

                        • vision vision 3

                          百度了很多方法,下面也可以
                          function get_ssl_avatar($avatar) {
                          $avatar = preg_replace(\'/.*/avatar/(.*)?s=([d]+)&.*/\',\'\',$avatar);
                          return $avatar;
                          }
                          add_filter(\'get_avatar\', \'get_ssl_avatar\');

                          • GlowBlur GlowBlur 3

                            cn.gravatar.com,en.gravatar.com也是可以的,有时候wordpress.org都抽风,实在无奈。。。

                            • 王语双个人站 王语双个人站 0

                              :lol: 有办法就好啦,我就不那么担心了。

                              • 铭泰网络 铭泰网络 2

                                谢谢鸟哥的对策

                                • poyoten poyoten 1

                                  我试了用https方式获取头像,好像不好用。也没细看正则表达式。我直接把pluggable.php中的function get_avatar()下面的$host赋值https://secure.gravatar.com,很 好使。

                                  • 小小百姓 小小百姓 2

                                    不知道升级了主题,为什么自带几个头像都没了

                                      • 小小百姓 小小百姓 2

                                        @ 小小百姓 [img]http://c.picphotos.baidu.com/album/s%3D740%3Bq%3D90/sign=812315dccaea15ce45eee20d863b4bce/8694a4c27d1ed21b8cec55bcae6eddc451da3f45.jpg[/img]

                                        全部变成了这个样子。。。

                                          • 知更鸟 知更鸟

                                            @ 小小百姓 用后两种方法
                                            自己连个头像都没有,还折腾这个 :arrow:

                                              • 小小百姓 小小百姓 2

                                                @ 知更鸟 嘿嘿,我自己的是本地上传的……感觉这个程序不够人性化,不能提供几种头像让注册用户自己选择,Gravatar头像好是好,省了自己空间的资源,但也仅限于站长之间的互动而已,普通用户你根本不可能要求他们去Gravatar注册一个自己的属于自己的电邮头像。

                                                  • liuyanyk liuyanyk 1

                                                    @ 小小百姓 呵呵,说得也是哈,我没做站那时也没头像。。。 :mrgreen:

                                            • lufan lufan 6

                                              用了你的替换的笨方法,头像在IE浏览器下显示正常,但在火狐和GOOGLE下显示仍然不正常,火狐加载非常缓慢,怎么解决,急!!

                                                • lufan lufan 6

                                                  @ lufan 图标显示正常了。好方法!

                                                • 何朝城 何朝城 1

                                                  看到大家的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\' );

                                                  • 雅兮部落 雅兮部落 4

                                                    为什么这个我注册好,上传头像不能保存呢?

                                                    • 回去 回去 1

                                                      试试看我的头像

                                                      • 明亮 明亮 1

                                                        不错,头像问题解决了~~~

                                                        • hahaha hahaha 0

                                                          测试一下

                                                          • 海棠兔 海棠兔 4

                                                            出新主题了,好期待啊,什么时候发布啊,鸟哥

                                                            • ZZH ZZH 0

                                                              新主题很好看

                                                              • 牛 0

                                                                很不错!

                                                                • 夏明个人网 夏明个人网 1

                                                                  支持,正为gravatar被墙发愁呢!

                                                                  • 大家 大家 2

                                                                    头像插件起用,需要设置什么吗

                                                                    • 喜欢它的美 喜欢它的美 2

                                                                      我启用了GravatarLocalCache这个头像插件,但是头像没显示,是个灰色的头像

                                                                        • jeepgge jeepgge 6

                                                                          @ 喜欢它的美 使用Gravatar Fixed 头像修正插件
                                                                          插件设置页面,将Gravatar 服务器和Gravatar SSL 服务器,全部改为:https://secure.gravatar.com
                                                                          这句话,你照做了吗?我试了一下,反正我自己的是好了

                                                                        • 微风海岸 微风海岸 1

                                                                          问题完美解决了~~~

                                                                          • 看一下头像 看一下头像 0

                                                                            看看头像

                                                                            • Dou Dou 2

                                                                              这个有点不明白哈。if ( is_ssl() ) {
                                                                              $host = ‘https://secure.gravatar.com’;
                                                                              } else {
                                                                              if ( !emptyempty($email) )
                                                                              $host = sprintf( “http://%d.gravatar.com”, ( hexdec( $email_hash[0] ) % 2 ) );
                                                                              else
                                                                              $host = ‘http://0.gravatar.com’;
                                                                              }

                                                                              这里面的代码 ,具体是怎么个替换哈。

                                                                              • china1040 china1040 0

                                                                                点赞,适合我这新手看,方法很实用! :smile:

                                                                                • مشرفی مشرفی 1

                                                                                  挺好

                                                                                  • 萨龙龙 萨龙龙 4

                                                                                    让人头疼的事情,感觉最笨的方法还是很实用。个人觉得还是把头像缓存到本地好些

                                                                                    • AITI AITI 0

                                                                                      你的网站很好,我已经加了添加友情链接了

                                                                                      • jeepgge jeepgge 6

                                                                                        使用Gravatar Fixed 头像修正插件
                                                                                        插件设置页面,将Gravatar 服务器和Gravatar SSL 服务器,全部改为:https://secure.gravatar.com
                                                                                        这段话写的不错,插件用了好几天了,头像还是时有时没有的,今天在仔细看看,这篇文章,吧插件设置里,都修改了这个地址,然后确定,哈哈,头像出来了,感谢啊!

                                                                                        • jeepgge jeepgge 6

                                                                                          地址栏打开自己的博客窗口小图标一直显示知更鸟的图标,今天终于修改成了自己的,话说把ICO图标,上传至根目录,就这个根目录可把我弄疯了,一直上传各种根目录都没好用,最后还把博客弄成乱码!删除,重装,咱在重新再来,本着 删除无罪‘折腾有理的原则,终于弄好了,我的地址是这样的:/htdocs/wp-content/themes/HotNewspro/images ,发出告诉大家,分享一下我的成果 哈哈!

                                                                                          • 晴天 晴天 4

                                                                                            我来看看我有没有图像

                                                                                            • 美Win网 美Win网 4

                                                                                              相当的实用!

                                                                                              • 西贝博客 西贝博客 3

                                                                                                现在可以正常显示咯

                                                                                                • 红包网 红包网 1

                                                                                                  多说有时加载也挺慢的。

                                                                                                  • Hogan Hogan 0

                                                                                                    用多说的服务器也挺好,基本不会拖速度

                                                                                                    • 海沧二手房 海沧二手房 2

                                                                                                      感谢鸟哥

                                                                                                      • David David 1

                                                                                                        呵呵,不错

                                                                                                          • 我爱动感单车网 我爱动感单车网 7

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

                                                                                                              • 我爱动感单车网 我爱动感单车网 7

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

                                                                                                            • 浩瀚 浩瀚 0

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

                                                                                                              • 筛宝 筛宝 2

                                                                                                                是用插件解决的。

                                                                                                                • 美Win网 美Win网 4

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

                                                                                                                  • 广东发票 广东发票 2

                                                                                                                    翻土代理,上网无忧

                                                                                                                    • Handle Handle 0

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

                                                                                                                      • 涂涂小窝 涂涂小窝 1

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

                                                                                                                        • 宝赚金 宝赚金 3

                                                                                                                          头像该怎么改才行呢?

                                                                                                                          • taogouqi taogouqi 1

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

                                                                                                                            • avas8 avas8 0

                                                                                                                              来看下头像

                                                                                                                              • Kylin 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 Shion 0

                                                                                                                                              不错

                                                                                                                                              • daisisi2008 daisisi2008 1

                                                                                                                                                测试一下

                                                                                                                                                • 众爱联盟 众爱联盟 1

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

                                                                                                                                                  • binaryjp binaryjp 0

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

                                                                                                                                                    • 网赚 网赚 2

                                                                                                                                                      正好用到,多谢了

                                                                                                                                                      • 片段艺文志 片段艺文志 3

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

                                                                                                                                                          • 我辈博客 我辈博客 1

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

                                                                                                                                                          • 福利社 福利社 0

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

                                                                                                                                                            • 金融大亨 金融大亨 2

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

                                                                                                                                                              • 伍仪洲 伍仪洲 0

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

                                                                                                                                                                • aliyun aliyun 0

                                                                                                                                                                  gravatar还能用?

                                                                                                                                                                  • 陈大猫 陈大猫 0

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

                                                                                                                                                                    • 疯书生 疯书生 0

                                                                                                                                                                      现在多说也不能用了。。

                                                                                                                                                                      • 阿里巴巴发 阿里巴巴发 0

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