解决 Gravatar 被墙导致无法显示的问题
最近wordpress默认使用的Gravatar头像地址又被墙了,虽然不影响blog页面的正常访问,不过对于一个处女座的人是容不下这点瑕疵的。以下总结了几种针对该问题的解决方法。
方法1:更换gravater地址
通过查找gravater的地址,共找到了以下地址:
http://www.gravatar.com
http://0.gravatar.com
http://1.gravatar.com
http://2.gravatar.com
http://gravatar.com
http://cn.gravatar.com
https://secure.gravatar.com
测试发现前四个地址已经被和谐了,后面三个还可以访问。所以最简单的方法就是将wordpress默认的gravatar服务器修改为后面三个。打开wordpress程序根目录的wp-includes文件夹,找到pluggable.php打开,将大约2150至2157行:
1if ( 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}
9
10替换为:
11
12$host = 'https://secure.gravatar.com';
13或
14$host = 'http://cn.gravatar.com';
不过该方法美中不足就是当wordpress进行更新,会将该文件覆盖。界时需要再手工改一次。
方法2:使用https方式(SSL)调用Gravatar头服务器地址
使用https方式(SSL)调用Gravatar头服务器地址需要将下面代码添加到主题functions.php文件中:
1function 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}
5add_filter('get_avatar', 'get_ssl_avatar');
使用该方法可能会造成头像缓存插件失效。
方法3:使用第三方法服务器中转
国内常用的有七牛、多说等,这里以多说为例,在当前主题functions.php文件中添加如下代码:
1function mytheme_get_avatar( $avatar ) {
2$avatar = preg_replace( "/http:\/\/(www|\d).gravatar.com/","http://gravatar.duoshuo.com",$avatar );
3return $avatar;
4}
5add_filter( 'get_avatar', 'mytheme_get_avatar' );
多说服务的稳定性且不说,之前使用过多说的评论插件,感觉不是甚好。
方法4:插件
以Gravatar Fixed 头像修正插件为例,插件设置页面,将Gravatar 服务器和Gravatar SSL 服务器,全部改为:https://secure.gravatar.com或http://cn.gravatar.com。
插件多了的话,速度自然不感觉恭维,如果你也玩了wp N久了这点不说自明吧。啰嗦了一大堆,还是推荐方法1 。
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/solve-gravatar-cant-access/4044.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.