这个方法相对复杂一些,不过这个使用本地缓存可能更加的稳定,也不用担心被服务商屏蔽而导致不能加载。

1.在网站根目录新建一个名为avatar的文件夹与wp-content 的同级目录。(权限改为755或777)

2.新建默认的头像图片,名为default.jpg并放入avatar文件夹中。

3.将以下代码加入到当前使用的主题的functions.php文件中。

 

//如果本地不存在头像文件,直接从V7V3服务copy。

function v7v3_avatar($avatar) {
    $avatar = str_replace(array("www.gravatar.com","0.gravatar.com","1.gravatar.com","2.gravatar.com"),"cd.v7v3.com",$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 ) { //头像超过设定时间或不存在则更新
        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', 'v7v3_avatar');

评论已经关闭。