A-A+

gravatar头像不能显示的解决方法

2010年10月16日 心得交流 评论 13 条 阅读 1,038 次

gravatar.com提供根据你所输入的Email地址,显示统一的留言头像输出服务。由于某种不明原因,gravatar的服务出现不“稳定”现象,造成很多blog留言中的头像无法显示,影响非常广泛。

目前的被动解决方法有gravatar头像本地缓存、手动指定gravatar头像输出服务器等,在当前情况下还是能够解决头像显示问题的。

gravatar头像缓存代码

willin kan 博客中提供的本地缓存gravatar头像的方法:

  1. wp-content 的同級目录建立文件夹: /avatar 权限: '0755', 作为gravatar 缓存路径. (若权限: '0755' 不行, 可尝试改为'0777')。
  2. 准备一张适合你模板尺寸的默认头像, 命名为"default.jpg" 放在此文件夹下。
  3. 将以下代码copy 到模板的 functions.php中即可

function my_avatar($avatar) {
$tmp = strpos($avatar, 'http');
$g = substr($avatar, $tmp, strpos($avatar, "'", $tmp) - $tmp);
$tmp = strpos($g, 'avatar/') + 7;
$f = substr($g, $tmp, strpos($g, "?", $tmp) - $tmp);
$w = get_bloginfo('wpurl');
$e = ABSPATH .'avatar/'. $f .'.jpg';
$t = 1209600; //設定14天, 單位:秒
if ( !is_file($e) || (time() - filemtime($e)) > $t ) { //當頭像不存在或文件超過14天才更新
copy(htmlspecialchars_decode($g), $e);
} else $avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.jpg'));
if ( filesize($e) < 500 ) copy($w.'/avatar/default.jpg', $e);
return $avatar;
}
add_filter('get_avatar', 'my_avatar');

gravatar头像缓存插件

如果觉得修改代码很繁琐,可以使用荒野无灯制作的Hacklog Gravatar Cache插件,后台启用插件后,会自动缓存gravatar头像到本地服务器。

gravatar头像服务器指定

柠檬日记提供了一个比较取巧的方法,修改/wp-includes/pluggable.php,将默认的gravatar头像服务器指定到www.gravater.com,避开有问题的二级域名。

if ( is_ssl() ) {
		$host = 'https://secure.gravatar.com';
	} else {
		if ( !empty($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 $host = 'http://www.gravatar.com';

13 条留言  访客:0 条  博主:0 条   引用: 1 条

  1. april

    听说gravatar头像不能显示,还以为被河蟹了呢。

    • @april, 没错,是被和谐了。准确的说,是gravatar用以输出、显示头像的二级域名被和谐了。

  2. 东暴

    天!…….

    • @东暴, 大局域网中,什么吃惊的事情都有可能发生。

  3. feathia

    帅大叔用了哪种方法?插件好用吗?

    • @feathia, 我用插件的,主要是考虑以后升级版本方便,而且缓存在本地后,加载速度也快一些。

  4. feathia

    今天头像突然又正常了。真是诡异!不知道能维持多久。

    • @feathia, 嗯,cdn加速服务器被封造成的。

  5. uh

    谢谢,我用最后一个办法吧,比较方便。

  6. tututa

    看看我的头像显不显示

    • tututa

      @tututa, 在我自己的WP博客上能正常显示,怎么在这里不可以呢,求站长和各位同仁解答 T T

      • @tututa, 显示的是QQ图标,应该是之前用过qq邮箱留言,缓存了qq的图标,有空我更新下缓存看看。

来自外部的引用: 1 条

  • 多说已修复Gravatar头像 | 风向吧

给我留言

Copyright © 风向吧 保留所有权利.   Theme  Ality

用户登录

分享到: