之前曾经写过:教你怎么在WordPress博客里显示自定义头像一文,不过后来Gravatar的CDN服务器被墙,导致非常多的wordpress博客头像无法显示,我的博客也没有幸免,不过修改了CDN服务器后已经正常了,今天发现,依然有很多朋友不知道怎么办,所以分享一下解决的方法,个人推荐方法三
方法一
使用Gravatar头像修正扩展,将扩展下载,安装到wordpress后,选择设置--Gravatar头像
方法二
在FTP服务器上修改wp-includes下的pluggable.php文件,这个方法无视主题,更换主题后依然有效
将:
- 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';
- }
修改为:
- 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';
- }
方法三
强烈推荐使用方法三,修改主题目录下的functions.php文件,在最下面的?>前加上如下代码即可将Avatar头像改为国内的CDN服务器上,而且支持SSL:
- /* Avatar改用国内CDN公共库缓存链接
- /* -------------------------------------- */
- function mytheme_get_avatar( $avatar ) {
- $avatar = str_replace(array("www.gravatar.com","0.gravatar.com","1.gravatar.com","2.gravatar.com","secure.gravatar.com","cn.gravatar.com/"),"gravatar.moefont.com",$avatar);
- return $avatar;
- }
- add_filter( 'get_avatar', 'mytheme_get_avatar' );
其实还有改host和使用头像缓存扩展的方法,但是阿斯兰不是很推荐,使用缓存扩展,会导致没有注册gravatar的评论无法显示默认头像,而改host更加的繁琐,没必要!
2015 年 08 月 15 日 11:36 四川省成都市 3F
插件就可以搞定
2014 年 12 月 17 日 00:18 广东省东莞市 2F
看到大家的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' );
不要感谢我,请叫我雷锋!!
2013 年 07 月 28 日 20:06 浙江省金华市 1F
我的图像有的显示,有的网站不显示怎么回事?
2013 年 07 月 29 日 10:22 开曼群岛 B1
@ 免费部落 都是你的网站?还是在别人的网站不显示?