Gravatar,是全球通用头像服务,服务器在国外,所以 Gravatar 的头像载入会影响网站速度。这时我们就需要把 Gravatar 头像缓存在本地,方法很简单,不需要任何 WordPress 插件,只需在 functions.php 中插入代码即可。
首先,在网站的根目录下创建一个文件夹,名字取为 「avatar」,并右键-属性,设置权限为 「777」,然后进入 WP 后台 – 主题 – 编辑,找到 functions.php ,在里面插入如下代码:
/* Gavatar 头像缓存 */
function get_cavatar($source) {
$time = 1209600; //The time of cache(seconds)
preg_match(『/avatar/([a-z0-9]+)?s=(d+)/』,$source,$tmp);
$abs = ABSPATH.』avatar/』.$tmp[1].』.jpg』;
$url = get_bloginfo(『wpurl』).』/avatar/』.$tmp[1].』.jpg』;
$default = get_bloginfo(『wpurl』).』/avatar/』.'default.jpg』;
if (!is_file($abs)||(time()-filemtime($abs))>$time){
copy(『http://www.gravatar.com/avatar/』.$tmp[1].』?s=64&d=』.$default.』&r=G』,$abs);
}
if (filesize($abs)<500) { copy($default,$abs); }
return 『<img alt="" src="』.$url.』" width="』.$tmp[2].』" height="』.$tmp[2].』" />』;
}
}
add_filter(『get_avatar』,'get_cavatar』);
function get_cavatar($source) {
$time = 1209600; //The time of cache(seconds)
preg_match(『/avatar/([a-z0-9]+)?s=(d+)/』,$source,$tmp);
$abs = ABSPATH.』avatar/』.$tmp[1].』.jpg』;
$url = get_bloginfo(『wpurl』).』/avatar/』.$tmp[1].』.jpg』;
$default = get_bloginfo(『wpurl』).』/avatar/』.'default.jpg』;
if (!is_file($abs)||(time()-filemtime($abs))>$time){
copy(『http://www.gravatar.com/avatar/』.$tmp[1].』?s=64&d=』.$default.』&r=G』,$abs);
}
if (filesize($abs)<500) { copy($default,$abs); }
return 『<img alt="" src="』.$url.』" width="』.$tmp[2].』" height="』.$tmp[2].』" />』;
}
}
add_filter(『get_avatar』,'get_cavatar』);
最后保存即可,这样网站有头像的地方都会自动替换成本地的缓存头像咯。