利用多说Gravatar头像中转服务器替代头像默认服务器。
将下面代码添加到当前主题functions.php文件中:
- function mytheme_get_avatar( $avatar ) {
- $avatar = preg_replace( "/http:\/\/(www|\d).gravatar.com/","http://gravatar.duoshuo.com",$avatar );
- return $avatar;
- }
- add_filter( 'get_avatar', 'mytheme_get_avatar' );
可惜多说服务稳定性欠佳,有时也会暂时无法显示头像。如编辑已发表的文章,并且文章已有评论,还需要在文章编辑页面打开右上的“显示选项”去掉“评论”勾选,否则在点击更新文章按钮后,还是会向Gravatar头像服务器发送获取头像请求,从而影响页面加载速度。
使用https方式(SSL)调用Gravatar头服务器地址
使用方法同上,将下面代码添加到主题functions.php文件中:
- function get_ssl_avatar($avatar) {
- $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);
- return $avatar;
- }
- 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行:
- 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';
- }
替换为:
- $host = 'https://secure.gravatar.com';
或者(支持头像缓存插件)
- $host = 'http://cn.gravatar.com';
WP4.2之后版本,打开wordpress程序目录的wp-includes文件夹,打开link-template.php,将大约第3604行的:
- $url = sprintf( 'http://%d.gravatar.com/avatar/%s', $gravatar_server, $email_hash );
修改为:
- $url = sprintf( 'http://cn.gravatar.com/avatar/%s', $email_hash );
之所以说“笨”是因为下次更新程序,还需要再次修改,不过这个方法最实用。
以上方法主要针对使用用国内主机用户,使用国外主机这时优势突显,并不需要修改任何东西,安装头像缓存插件,将头像缓存到本地,并不影响正常使用。
fonts.googleapis.com和gravatar.com被墙,严重影响了Wordpress用户体验,对新手熟习Wordpress的造成极大障碍。
本站文章大部分为原创,用于个人学习记录,可能对您有所帮助,仅供参考!

我的微信
微信号已复制
版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
- Gravatar头像
- WordPress





北京市 51F
呵呵,不错
广西桂林市雁山区 B1
@ David
我喜欢里面介绍的第二种方法,比较来得简单但相当实用,具体效果感兴趣的朋友可以去我博客看看哦。
广西桂林市 B2
@ 我爱动感单车网
已经用了好几个月时间,但发觉“使用https方式(SSL)调用Gravatar头服务器地址”也不给力啊,同样经常性的加载缓慢。特别是这几天慢的要死,还有什么好点办法没有?知道的朋友请给说说嘛。
河南省 52F
博主用的什么图片播放插件?就是类似“jQuery Table of Contents”的。
广东省广州市 53F
是用插件解决的。
江苏省苏州市 54F
鸟哥用的是本地的缓存呀!
B1
@ 美Win网 在目前这种环境下,头像缓存本地是唯一上策
广西桂林市 B2
@ 知更鸟 请问鸟哥,你的本地缓存是使用插件,还是集成到主题来实现的呢?
B3
@ 我爱动感单车网 我没使用头像缓存
广西桂林市 B4
@ 知更鸟
非常感谢鸟哥百忙之中给予回复,衷心谢谢啦!
美国 55F
翻土代理,上网无忧
河南省洛阳市 56F
因为缓存似乎很烧空间而且是https站,
完全懒的改代码,
所以默默照着方法安装插件改成https服务器的路过
广东省深圳市 57F
一直关注鸟哥,也在向鸟哥学习
河南省开封市 58F
头像该怎么改才行呢?
上海市嘉定区 59F
使用了Gravatar Fixed插件后正常显示,感谢!
广东省广州市 60F
来看下头像
福建省 61F
ality用户删除评论会报错,版本4.2.4
福建省三明市 62F
typecho改了可以!
北京市 63F
不错,学习了!!!!
山东省青岛市 64F
中文中文
广东省广州市 65F
用鸟哥的主题这么久了 来留个言
福建省福州市 66F
WP4.2版本之后改成$url = sprintf( ‘http://cn.gravatar.com/avatar/%s’, $email_hash );可以缓存吗?怎么设置缓存后后台设置讨论里面头像无法显示,前台好像正常,帮忙看下,地址:http://www.xiaokang.info/guestbook ,谢谢!
广西桂林市阳朔县 67F
本地缓存是目前最好的方式,虽然好但是自己不会弄,实在纠结的很。无奈之下只能是退而求其次,目前使用的是https方式,但愿在今后自己能够找到更好与可以长久使用的好方法吧。如果这的哪位大神能够指点一二,不胜感激
!
内蒙古呼和浩特市 68F
不错
浙江省杭州市 69F
测试一下
浙江省杭州市 70F
申请成功,不知道怎样给普通用户默认一个头像
山西省晋城市 71F
gravatar.com是不是无法做镜像了
山东省聊城市 72F
正好用到,多谢了
宁夏 73F
放上这些代码后,后台头像变大了,不知道怎么回事?
浙江省湖州市 B1
@ 片段艺文志 SSL方法吧。默认会放大2倍,前台不影响使用。强迫症的话可以把height=”$2″ width=”$2″中的$2改为50,但是弊端就是尺寸固定了,都是50*50的
江苏省南通市 74F
我替换完了,但是想换个图片,就是换不了

广东省汕头市 75F
感觉还是不要用这个插件了,特别坑……
陕西省西安市 76F
请问一下博主是如何解决评论慢的问题呢?
陕西省西安市 77F
gravatar还能用?
陕西省西安市 78F
WP4.2之后版本,打开wordpress程序目录的wp-includes文件夹,打开link-template.php
——
我这几天一直保守困扰,明明在主题函数文件里修改了ssl替换为国内资源的地址,为什么还是调用的官方的https源,看了你这篇博文测试后才知道原来在上面这个文件里还有这么一处代码,修改后,头像终于调用到国内资源了。谢谢博主。
陕西省西安市 79F
现在多说也不能用了。。
陕西省西安市 80F
我喜欢里面介绍的第二种方法,比较来得简单但相当实用,具体效果感兴趣的朋友可以去我博客看看哦。