解决Gravatar头像图片不显示问题导致网站访问速度变慢

基本所有的博客网站都采用的Gravatar作为头像存储展示调用的,最近一段时间由于网络延迟问题本身在海外主机中的网站速度就不是很快,尤其是到了网上抽风更为明显。同样的,如果我们博客中使用的Gravatar头像加载默认没有处理的话,也会发现目前Gravatar官方网站基本打不开。如果解决头像调用问题呢?

第一、如果我们还需要使用Gravatar头像

function get_ssl_avatar($avatar) {
$avatar = preg_replace(\’/.*\\/avatar\\/(.*)\\s=([\\d]+)&.*/\’,\'<img src=\”https://secure.gravatar.com/avatar/$1s=$2\” class=\”avatar avatar-$2\” height=\”$2\” width=\”$2\”>\’,$avatar);
return $avatar;
}
add_filter(\’get_avatar\’, \’get_ssl_avatar\’);

在当前WORDPRESS主题中的FUNCTIONS.PHP页面中加入上面的代码,因为HTTP直接访问不了,这里调整为HTTPS的路径地址。

第二、使用本地头像

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;
if ( !is_file($e) || (time() – filemtime($e)) > $t ) {
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\’);

同样的,在FUNCTIONS.PHP文件中,加入上面的代码,把头像缓存本地,同样的使用avatar文件夹作为根目录,可以先放入一个default.jpg作为默认不存在的头像展示图片。

第三、使用第三方评论插件

使用第三方评论插件可以展示头像的,目前不存在调用问题,之前国外主机优惠也写过一篇\”点评四款社会化评论系统\”,目前使用较多的还是多说和畅言,前者用户体验还可以,就是服务器宕机不稳定。后者基于搜狐提供的,界面一般,但服务器是比较稳定的。

总之,一切影响网站速度的问题都需要解决。