当前位置:
首页 > WordPress教程 > WordPress优化加速:Gravatar头像缓存与镜像方法

WordPress优化加速:Gravatar头像缓存与镜像方法

教程介绍

对于Gravatar头像各位应该不陌生吧,WordPress就使用了Gravatar头像,但是Gravatar头像的服务器在美国,这导致了国内用户由于各种原因打不开,加载慢,甚至影响网站的加载速度,所以本文章给出了两种解决方案.
推荐使用方案二

方案一

将Gravatar头像缓存到本地
1.首先在网站根目录创建一个avatar文件夹(权限改为777或755)。
2.新建一张默认的头像图片,名为default.jpg并放入avatar文件夹中。
3.将以下代码添加到当前使用的主题的functions.php文件中即可。

  1. //将Gravatar头像缓存到本地
  2. function ymjihe_avatar($avatar) {
  3. $tmp = strpos($avatar, 'http');
  4. $g = substr($avatar, $tmp, strpos($avatar, "'", $tmp) - $tmp);
  5. $tmp = strpos($g, 'avatar/') + 7;
  6. $f = substr($g, $tmp, strpos($g, "?", $tmp) - $tmp);
  7. $w = get_bloginfo('wpurl');
  8. $e = ABSPATH .'avatar/'. $f .'.jpg';
  9. $t = 1209600; //设定还缓存时间14天,单位为秒
  10. if ( !is_file($e) || (time() - filemtime($e)) > $t ) { //头像超过设定时间或不存在则更新
  11. copy(htmlspecialchars_decode($g), $e);
  12. } else $avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.jpg'));
  13. if (filesize($e) < 500) copy($w.'/avatar/default.jpg', $e);
  14. return $avatar;
  15. }
  16. add_filter('get_avatar', 'ymjihe_avatar');

方案二

使用多说的Gravatar镜像源
将以下代码添加到当前使用的主题的functions.php文件中即可。(这里提供两种代码,喜欢那种用那种吧)

  1. //多说Gravatar镜像源
  2. function get_avatar_loo( $avatar ) {
  3.  $avatar = preg_replace( "/http%3A%2F%2F\d.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D\d+/","mm",$avatar );
  4.  $avatar = preg_replace( "/http:\/\/(www|\d).gravatar.com/","http://gravatar.duoshuo.com",$avatar );
  5.  return $avatar;
  6. }
  7. add_filter( 'get_avatar', 'get_avatar_loo' );
  1. //多说Gravatar镜像源
  2. function ymjihe_get_avatar($avatar) {
  3.  $avatar = str_replace(array("www.gravatar.com","0.gravatar.com","1.gravatar.com","2.gravatar.com"),
  4. "gravatar.duoshuo.com",$avatar);
  5.  return $avatar;
  6. }
  7. add_filter( 'get_avatar', 'ymjihe_get_avatar', 10, 3 );
云左科技

WordPress优化加速:Gravatar头像缓存与镜像方法:等您坐沙发呢!

发表评论

表情
还能输入210个字