注册一次Gravatar账号即可以在千千万万的 WordPress 网站上包括本站上,评论的时候显示自定义的个性化的头像。但是Gravatar服务器链接缓慢甚至一度被Q,拖累了网站的打开速度。
以下实现头像简单的本地缓存,加速评论头像的展示。//头像缓存
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 );//匹配图片名称
$e = get_template_directory() . '/images/avatarcache/' . $f . '.png';//图片缓存路径
$t = 604800; //缓存天数
if ( ! is_file( $e ) || ( time() - filemtime( $e ) ) > $t ) {
copy( htmlspecialchars_decode( $g ), $e );
} else {
$avatar = strtr( $avatar, array( $g => get_template_directory_uri() . '/images/avatarcache/' . $f . '.png' ) );
}
if ( filesize( $e ) < 500 ) {
copy( get_template_directory() . 'images/avatarcache/default.png', $e );
}
return $avatar;
}
add_filter( 'get_avatar', 'my_avatar' );
//end
主题目录下新建images/avatarcache目录,给与755权限,或者自己更改路径,加一张 default.png 默认头像。