wordpress 缓存Gravatar 头像到当地 去自卑收
wordpress迷之前也引见过几篇闭于wordpress头像被墙大概过缓的处理办法,那里分享年夜收的一篇文章:
正在Gravatar出被墙之前,许多人皆是把头像缓存到当地去加快,自从被墙后(貌似如今规复了,可是速率十分缓),海内主机便辞别那个办法了,皆是利用交换效劳器的办法,可是许多时分速率借没有是很幻想。借有便是新版的get_avatar函数曾经撑持srcset去顺应下浑屏,一些欠好的代码正在下浑屏下能够呈现成绩。
别的便是旧版的缓存函数只能缓存一个尺寸的头像,假如网站挪用了多个尺寸的头像能够挪用年夜头像的时分会没有明晰。因而我改良了代码,
撑持海内主机
撑持差别巨细的头像
假如您的效劳器借出有头像快,那借是算了。。
上面的代码减到functions.php中,部门参考了从前willin写的谁人。
function fa_cache_avatar($avatar, $id_or_email, $size, $default, $alt){ $avatar = str_replace(array("gravatar", "0.gravatar", "1.gravatar", "2.gravatar"), "cn.gravatar", $avatar); $tmp = strpos($avatar, 'http'); $url = get_avatar_url( $id_or_email, $size ) ; $url = str_replace(array("gravatar", "0.gravatar", "1.gravatar", "2.gravatar"), "cn.gravatar", $url); $avatar2x = get_avatar_url( $id_or_email, ( $size * 2 ) ) ; $avatar2x = str_replace(array("gravatar", "0.gravatar", "1.gravatar", "2.gravatar"), "cn.gravatar", $avatar2x); $g = substr($avatar, $tmp, strpos($avatar, "'", $tmp) - $tmp); $tmp = strpos($g, 'avatar/') + 7; $f = substr($g, $tmp, strpos($g, "?", $tmp) - $tmp); $w = home_url(); $e = ABSPATH .'avatar/'. $size . '*'. $f .'.jpg'; $e2x = ABSPATH .'avatar/'. ( $size * 2 ) . '*'. $f .'.jpg'; $t = 1209600; if ( (!is_file($e) || (time() - filemtime($e)) > $t) && (!is_file($e2x) || (time() - filemtime($e2x)) > $t ) ) { copy(htmlspecialchars_decode($g), $e); copy(htmlspecialchars_decode($avatar2x), $e2x); } else { $avatar = $w.'/avatar/'. $size . '*'.$f.'.jpg'; $avatar2x = $w.'/avatar/'. ( $size * 2) . '*'.$f.'.jpg'; if (filesize($e) < 1000) copy($w.'/avatar/default.jpg', $e); if (filesize($e2x) < 1000) copy($w.'/avatar/default.jpg', $e2x); $avatar = "<img alt='{$alt}' src='{$avatar}' srcset='{$avatar2x}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />"; } return $avatar;}add_filter('get_avatar', 'fa_cache_avatar',1,5);
正在WP根目次下新建avatar文件夹并赐与写权限。正在avatar文件夹下上传一张default.jpg的图片做为默许头像。
别的正在WP背景默许头像最好设置为空。
本文:fatesinger/76006
相关信息
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|