利用多说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的造成极大障碍。
本站文章大部分为原创,用于个人学习记录,可能对您有所帮助,仅供参考!

我的微信
微信号已复制
版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
1F
可以交换链接吗
2F
这个是头像镜像服务器?多说把gravatar搞定了?
B1
@ 情绪21℃ 已经搞定了,我的网站就用的多说的,其实这个方法上年这时候就有人写出来了
3F
我们能在国外的服务器上自己搭个gravatar头像缓存然后让自己国内的博客调用么,发现国外一堆服务器闲置,好浪费
4F
鸟哥,“wp slug translate”这个插件好像不好用了……有相关的替代吗?
B1
@ 看得见风的人 还是找个在线翻译软件,手工改吧
B2
@ 知更鸟 我的网站回复评论老是在转,实际上已经提交了,是什么原因?
5F
现在后台好慢~·
6F
原来如此,怪不得最近总是不显示头像呢,天朝无语啊
7F
问题已解决,谢谢鸟哥
8F
多说也是倒霉孩子
9F
感谢鸟哥,参照更新后问题解决。
10F
百度了很多方法,下面也可以
function get_ssl_avatar($avatar) {
$avatar = preg_replace(\'/.*/avatar/(.*)?s=([d]+)&.*/\',\'\',$avatar);
return $avatar;
}
add_filter(\'get_avatar\', \'get_ssl_avatar\');
B1
@ vision 嗯,这个方法速度比较快
B1
@ vision 我用您这种方法怎么不可以呀?
11F
cn.gravatar.com,en.gravatar.com也是可以的,有时候wordpress.org都抽风,实在无奈。。。
12F
13F
谢谢鸟哥的对策
14F
我试了用https方式获取头像,好像不好用。也没细看正则表达式。我直接把pluggable.php中的function get_avatar()下面的$host赋值https://secure.gravatar.com,很 好使。
15F
不知道升级了主题,为什么自带几个头像都没了
B1
@ 小小百姓 [img]http://c.picphotos.baidu.com/album/s%3D740%3Bq%3D90/sign=812315dccaea15ce45eee20d863b4bce/8694a4c27d1ed21b8cec55bcae6eddc451da3f45.jpg[/img]
全部变成了这个样子。。。
B2
@ 小小百姓 用后两种方法
自己连个头像都没有,还折腾这个
B3
@ 知更鸟 嘿嘿,我自己的是本地上传的……感觉这个程序不够人性化,不能提供几种头像让注册用户自己选择,Gravatar头像好是好,省了自己空间的资源,但也仅限于站长之间的互动而已,普通用户你根本不可能要求他们去Gravatar注册一个自己的属于自己的电邮头像。
B4
@ 小小百姓 呵呵,说得也是哈,我没做站那时也没头像。。。
16F
用了你的替换的笨方法,头像在IE浏览器下显示正常,但在火狐和GOOGLE下显示仍然不正常,火狐加载非常缓慢,怎么解决,急!!
B1
@ lufan 图标显示正常了。好方法!
17F
看到大家的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\' );
B1
@ 何朝城 这个方法好用,感谢
B1
@ 何朝城 这个方法,怎么用呢?详细步骤,请说说
18F
为什么这个我注册好,上传头像不能保存呢?
19F
试试看我的头像
20F
不错,头像问题解决了~~~
21F
测试一下
22F
出新主题了,好期待啊,什么时候发布啊,鸟哥
23F
新主题很好看
24F
很不错!
25F
支持,正为gravatar被墙发愁呢!
26F
头像插件起用,需要设置什么吗
27F
我启用了GravatarLocalCache这个头像插件,但是头像没显示,是个灰色的头像
B1
@ 喜欢它的美 使用Gravatar Fixed 头像修正插件
插件设置页面,将Gravatar 服务器和Gravatar SSL 服务器,全部改为:https://secure.gravatar.com
这句话,你照做了吗?我试了一下,反正我自己的是好了
28F
问题完美解决了~~~
29F
看看头像
30F
这个有点不明白哈。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’;
}
这里面的代码 ,具体是怎么个替换哈。
31F
点赞,适合我这新手看,方法很实用!
32F
挺好
33F
让人头疼的事情,感觉最笨的方法还是很实用。个人觉得还是把头像缓存到本地好些
34F
你的网站很好,我已经加了添加友情链接了
35F
使用Gravatar Fixed 头像修正插件
插件设置页面,将Gravatar 服务器和Gravatar SSL 服务器,全部改为:https://secure.gravatar.com
这段话写的不错,插件用了好几天了,头像还是时有时没有的,今天在仔细看看,这篇文章,吧插件设置里,都修改了这个地址,然后确定,哈哈,头像出来了,感谢啊!
36F
地址栏打开自己的博客窗口小图标一直显示知更鸟的图标,今天终于修改成了自己的,话说把ICO图标,上传至根目录,就这个根目录可把我弄疯了,一直上传各种根目录都没好用,最后还把博客弄成乱码!删除,重装,咱在重新再来,本着 删除无罪‘折腾有理的原则,终于弄好了,我的地址是这样的:/htdocs/wp-content/themes/HotNewspro/images ,发出告诉大家,分享一下我的成果 哈哈!
37F
我来看看我有没有图像
38F
相当的实用!
39F
现在可以正常显示咯
40F
多说有时加载也挺慢的。
41F
用多说的服务器也挺好,基本不会拖速度
42F
感谢鸟哥
43F
呵呵,不错
B1
@ David
我喜欢里面介绍的第二种方法,比较来得简单但相当实用,具体效果感兴趣的朋友可以去我博客看看哦。
B2
@ 我爱动感单车网
已经用了好几个月时间,但发觉“使用https方式(SSL)调用Gravatar头服务器地址”也不给力啊,同样经常性的加载缓慢。特别是这几天慢的要死,还有什么好点办法没有?知道的朋友请给说说嘛。
44F
博主用的什么图片播放插件?就是类似“jQuery Table of Contents”的。
45F
是用插件解决的。
46F
鸟哥用的是本地的缓存呀!
B1
@ 美Win网 在目前这种环境下,头像缓存本地是唯一上策
B2
@ 知更鸟 请问鸟哥,你的本地缓存是使用插件,还是集成到主题来实现的呢?
B3
@ 我爱动感单车网 我没使用头像缓存
B4
@ 知更鸟
非常感谢鸟哥百忙之中给予回复,衷心谢谢啦!
47F
翻土代理,上网无忧
48F
因为缓存似乎很烧空间而且是https站,
完全懒的改代码,
所以默默照着方法安装插件改成https服务器的路过
49F
一直关注鸟哥,也在向鸟哥学习
50F
头像该怎么改才行呢?
51F
使用了Gravatar Fixed插件后正常显示,感谢!
52F
来看下头像
53F
ality用户删除评论会报错,版本4.2.4
54F
typecho改了可以!
55F
不错,学习了!!!!
56F
中文中文
57F
用鸟哥的主题这么久了 来留个言
58F
WP4.2版本之后改成$url = sprintf( ‘http://cn.gravatar.com/avatar/%s’, $email_hash );可以缓存吗?怎么设置缓存后后台设置讨论里面头像无法显示,前台好像正常,帮忙看下,地址:http://www.xiaokang.info/guestbook ,谢谢!
59F
本地缓存是目前最好的方式,虽然好但是自己不会弄,实在纠结的很。无奈之下只能是退而求其次,目前使用的是https方式,但愿在今后自己能够找到更好与可以长久使用的好方法吧。如果这的哪位大神能够指点一二,不胜感激
!
60F
不错
61F
测试一下
62F
申请成功,不知道怎样给普通用户默认一个头像
63F
gravatar.com是不是无法做镜像了
64F
正好用到,多谢了
65F
放上这些代码后,后台头像变大了,不知道怎么回事?
B1
@ 片段艺文志 SSL方法吧。默认会放大2倍,前台不影响使用。强迫症的话可以把height=”$2″ width=”$2″中的$2改为50,但是弊端就是尺寸固定了,都是50*50的
66F
我替换完了,但是想换个图片,就是换不了

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