Gravatar被墙后,很多博客的头像显示都不正常了,网上也有很多的方法,但是不全面,今天Mrxn帮你搜集汇总,发布在Mrxn's Blog 。
方法一:
打开include/lib/function.base.php 找到如下代码:
function getGravatar($email, $s = 40, $d = 'mm', $g = 'g') {
$hash = md5($email);
$avatar = "http://www.gravatar.com/avatar/$hash?s=$s&d=$d&r=$g";
return $avatar;
}
修改为
$avatar = "https://secure.gravatar.com/avatar/$hash?s=$s&d=$d&r=$g";
方法二:
同样打开include/lib/function.base.php
将$avatar = "http://www.gravatar.com/avatar/$hash?s=$s&d=$d&r=$g";
修改为:$avatar = "http://gravatar.duoshuo.com/avatar/$hash?s=$s&d=$d&r=$g";
方法三:
也是打开include/lib/function.base.php
将/**
* 获取Gravatar头像
* http://en.gravatar.com/site/implement/images/
* @param $email
* @param $s size
* @param $d default avatar
* @param $g
*/
里面的http://en.gravatar.com/site/implement/images/
修改为:http://cn.gravatar.com/site/implement/images/
方法四:缓存头像,本地缓存。
<?php
function get_avatar($mail,$size = '40')
{
$email_md5=md5(strtolower($mail));//通过MD5加密邮箱
$cache_path=EMLOG_ROOT."/content/templates/uu_hcms/cache"; //缓存文件夹路径
if(!file_exists($cache_path))
{
mkdir($cache_path,0700);
}
$avatar_url=TEMPLATE_URL."cache/".$email_md5.'.jpg'; //头像相对路径
$avatar_abs_url=$cache_path."/".$email_md5.'.jpg'; //头像绝对路径
$cache_time=24*3600*7; //缓存时间为7天
if (empty($default)) $default = $cache_path. '/default.jpg';
if(!file_exists($avatar_abs_url) || (time()-filemtime($avatar_abs_url)) > $cache_time)//过期或图片不存在
{
$new_avatar = getGravatar($mail);
copy($new_avatar,$avatar_abs_url);
}
return $avatar_url;
}
?>
插入module.php中,修改自12年某emer的代码。缓存7天可以自己修改,缓存呢可以加快页面是显示速度,但也不能那么及时更新头像了。看自己需要吧。对路由服务器来说,加载留言板的速度无疑快了不少。
使用方法:在module.php的最新评论 显示评论 显示子评论里面将getGravatar替换成get_avatar 。OK 完工。
方法五:自定义默认头像,个性DIY
详情,请查看我早期的文章:让emlog的留言板和评论使用本地头像,加速访问,提升美观
更多方法正在搜集研究中,尽请期待!请关注我的博客:https://mrxn.net






