Gravatar头像不显示怎么解决的问题

  • A+
所属分类:网站

记不起是什么时候开始,头像无法显示了,之前好像搜索过一次,没有找到解决的方法,于是放在一边很长时间都没有理会,直到昨天破折君留言提醒,今天找了下几种方法,我用了最简单的方法,安装插件,不过就目前为止还没有生效,或许是药不对症,如果明天还是一样的话,要重新找方法了!

27日更新:昨天安装的Gravatar Fixed 头像修正插件无效,改代码又有难度,直接在后台搜索安装

WP-DuoShuo-Gravatar,立马见效……

1、利用多说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' );

2、使用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');

3、另一个比较笨的方法

打开wordpress程序根目录的wp-includes文件夹,找到pluggable.php打开,将大约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';

指尖恋:http://www.zhijianlian.com

发表评论

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