..2sk..TO SKY..

Home / PHP & Wordpress / wordpress的Gravatar头像本地化

血管和腔内血管外科学精要(高清中文版)PDF分享wordpress弹窗下载插件

在wordpress中采用Gravatar固然可用增加网站的交互性乐趣,但是由于Gravatar加载缓慢,有的时候严重拖拉网站的加载速度,于是将Gravatar本地化,即将Gravatar头像存储在网站目录里不失为不错的选择。且该方法支持wordpress最新的wordpress4.5.2版本,而且在国内主机中同样适用。

1.首先在网站的根目录下创建文件夹avatar,权限为755,

2.然后制作一个默认的gravatar头像,即default.jpg,并上传该default.jpg图像到上一步的avatar文件夹中,

3.在主题的function.php中添加以下代码(记得备份文件):

 

  1. function fa_cache_avatar($avatar, $id_or_email, $size, $default, $alt)
  2. {
  3.     $avatar = str_replace(array(“www.gravatar.com”“0.gravatar.com”“1.gravatar.com”“2.gravatar.com”), “cn.gravatar.com”, $avatar);
  4.     $tmp = strpos($avatar, ‘http’);
  5.     $url = get_avatar_url( $id_or_email, $size ) ;
  6.     $url = str_replace(array(“www.gravatar.com”“0.gravatar.com”“1.gravatar.com”“2.gravatar.com”), “cn.gravatar.com”, $url);
  7.     $avatar2x = get_avatar_url( $id_or_email, ( $size * 2 ) ) ;
  8.     $avatar2x = str_replace(array(“www.gravatar.com”“0.gravatar.com”“1.gravatar.com”“2.gravatar.com”), “cn.gravatar.com”, $avatar2x);
  9.     $g = substr($avatar, $tmp, strpos($avatar, “‘”, $tmp) – $tmp);
  10.     $tmp = strpos($g, ‘avatar/’) + 7;
  11.     $f = substr($g, $tmp, strpos($g, “?”, $tmp) – $tmp);
  12.     $w = home_url();
  13.     $e = ABSPATH .’avatar/’. $size . ‘*’. $f .’.jpg’;
  14.     $e2x = ABSPATH .’avatar/’. ( $size * 2 ) . ‘*’. $f .’.jpg’;
  15.     $t = 1209600;
  16.     if ( (!is_file($e) || (time() – filemtime($e)) > $t) && (!is_file($e2x) || (time() – filemtime($e2x)) > $t ) ) {
  17.         copy(htmlspecialchars_decode($g), $e);
  18.         copy(htmlspecialchars_decode($avatar2x), $e2x);
  19.     } else { $avatar = $w.’/avatar/’. $size . ‘*’.$f.’.jpg’;
  20.         $avatar2x = $w.’/avatar/’. ( $size * 2) . ‘*’.$f.’.jpg’;
  21.         if (filesize($e) < 1000) copy($w.’/avatar/default.jpg’, $e);
  22.         if (filesize($e2x) < 1000) copy($w.’/avatar/default.jpg’, $e2x);
  23.         $avatar = “<img alt='{$alt}’ src='{$avatar}’ srcset='{$avatar2x}’ class=’avatar avatar-{$size} photo’ height='{$size}’ width='{$size}’ />”;
  24.     }
  25.     return $avatar;
  26. }
  27. add_filter(‘get_avatar’, ‘fa_cache_avatar’,1,5);

PS:强烈建议将更新频率更改更长天数。

最终效果如下:

gravatar

Related Posts

转载原创文章请注明,转载自:SKY [https://www.2sk.com/]

本文链接: https://www.2sk.com/websites/phpwordpress/wordpress-gravatar-location.html

Leave a Reply

Mr. Green Sad Exclamation Smile Oops Grin Surprised Shocked Confused Cool LOL Twisted Roll Eyes Idea Arrow Wink Cry Neutral razz evil mad question

Websites powered by Wordpress 7.1 Copyright © 2009-2026 - All Rights Reserved   SKY..fly..