特殊时期竟连 Gravatar 也被屏蔽了……如果网站出现加载速度缓慢等问题,有80%的原因在于此。 总而言之,当 WordPress 在发现需要载入 Gravatar 头像时,使用以下代码会自动下载至本地服务器,下一次加载则直接从自己的网站上调用。由于网络的特殊性,Gravatar 打不开或者速度慢等情况是常有的事。所以开启此功能很有必要,仅适用于国外主机。在 functions.php 中添加:
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); $w = home_url(); // $w = get_bloginfo('url'); $e = preg_replace('/wordpress\//', '', ABSPATH) .'avatar/'. $f .'.jpg'; $t = 604800; if ( empty($default) ) $default = $w. '/avatar/default.jpg'; 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($default, $e); return $avatar; } add_filter('get_avatar', 'my_avatar');
其中, $t = 604800; 是缓存的时间,以秒为单位,默认为7天。同时需要在你的网站根目录下新建一个名为”avatar”的文件夹,权限设置为777,在此文件夹内放入 default.jpg 作为没有头像时默认的显示图片,尺寸为 50*50。
亦或是直接使用我提供的七牛镜像服务器:
function replace_avatar_url($avatar) { $avatar = str_replace(array("www.gravatar.com","0.gravatar.com","1.gravatar.com","2.gravatar.com"),"ds-gravatar.qiniudn.com",$avatar); return $avatar; } add_filter( 'get_avatar', 'replace_avatar_url', 10, 3 );
来自:http://www.mywpku.com/wordpress-download-gravatars-to-webserver.html