替换Gravatar头像默认服务器

avatar
avatar
知更鸟
1479
文章
6917
评论
2014年11月15日12:59:20 100 28.4K 1725字阅读5分45秒

这几天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经验与技巧,关注前端设计与网站制作。仅用于功能演示。
匿名

发表评论

匿名网友 填写信息

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

评论:100   其中:访客  87   博主  5
    • avatar David @回复 1

      呵呵,不错

        • avatar 我爱动感单车网 @回复 7

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

            • avatar 我爱动感单车网 7

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

          • avatar 浩瀚 @回复 0

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

            • avatar 筛宝 @回复 2

              是用插件解决的。

              • avatar 美Win网 @回复 4

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

                • avatar 广东发票 @回复 2

                  翻土代理,上网无忧

                  • avatar Handle @回复 0

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

                    • avatar 涂涂小窝 @回复 1

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

                      • avatar 宝赚金 @回复 3

                        头像该怎么改才行呢?

                        • avatar taogouqi @回复 1

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

                          • avatar avas8 @回复 0

                            来看下头像

                            • avatar Kylin @回复 1

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

                              • avatar 子叶 @回复 1

                                typecho改了可以!

                                • avatar 李胜利博客 @回复 1

                                  不错,学习了!!!!

                                  • avatar 艾秋 @回复 0

                                    中文中文

                                    • avatar 陈庚华律师 @回复 0

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

                                      • avatar 小康博客 @回复 0

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

                                        • avatar 我爱动感单车网 @回复 7

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

                                          • avatar Shion @回复 0

                                            不错

                                            • avatar daisisi2008 @回复 1

                                              测试一下

                                              • avatar 众爱联盟 @回复 1

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

                                                • avatar binaryjp @回复 0

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

                                                  • avatar 网赚 @回复 2

                                                    正好用到,多谢了

                                                    • avatar 片段艺文志 @回复 3

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

                                                        • avatar 我辈博客 @回复 1

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

                                                        • avatar 福利社 @回复 0

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

                                                          • avatar 金融大亨 @回复 2

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

                                                            • avatar 伍仪洲 @回复 0

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

                                                              • avatar aliyun @回复 0

                                                                gravatar还能用?

                                                                • avatar 陈大猫 @回复 0

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

                                                                  • avatar 疯书生 @回复 0

                                                                    现在多说也不能用了。。

                                                                    • avatar 阿里巴巴发 @回复 0

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