此方法是Sham从一个插件里接取出来的,这样不需要安装插件,只需要在主题文件functions.php里添加代码就能实现,方法如下:
首先,在网站根目录下新建一个文件夹,取名为avatar,并设置权限成777,这个可以改,不过需要同时在后面的代码中修改相应文件夹名。
然后,把下面代码放入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');
然后保存就好了。这样有头像的地方都会自动替换成本地缓存的图片了。
特此感谢插件wp-gravatar-mini-cache及其作者邪罗刹.Evlos.




