Gravatar头像因为某种原因打不开,解决办法有换源、本地缓存等,上个主题不知道哪里的问题,换源始终不行,评论区一水的葫芦娃和爷爷,今天翻教程,找到这篇本地缓存教程,来自《wordpress加速之Gravatar头像缓存本地化》。
在WordPress主题文件的functions.php内加入一下代码:
function xintheme_avatar_cache( $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( 'template_directory' );
$path = TEMPLATEPATH . '/avatar';
$e = $path . '/' . $f . '.png';
$t = 604800; //設定7天, 單位:秒
if( !is_file( $e ) || ( time() - filemtime( $e ) ) > $t ) copy( htmlspecialchars_decode( $g ), $e );
else $avatar = strtr( $avatar, array( $g => $w . '/avatar/' . $f . '.png' ) );
if( filesize( $e ) < 500 ) copy( TEMPLATEPATH . 'https://cdn.osgz.com/avatar/default.png', $e );
return $avatar;
}
add_filter('get_avatar', 'xintheme_avatar_cache' );
然后,在你所使用的WordPress主题根目录内新建名为“avatar”的文件夹,并设置文件夹权限为777。最后放一个PNG格式的图片(名为default)作为默认头像。
刷新网站,就可以看到本地缓存图片不断增加了。
可以用 Cravatar 来代替,稳定性还算是不错的。
@威言威语 缓存莫名其妙会连接超时,用你推荐这个更靠谱。