打开functions.php,将下面的代码copy到里面去:
//评论Gravatar头像缓存 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 = get_bloginfo('wpurl'); $e = ABSPATH .'avatar/'. $f .'.jpg'; $t = 1209600; //超时时间设定,默认14天,单位:秒 if ( !is_file($e) || (time() - filemtime($e)) > $t ) { //当头像不存在或者缓存时间已经超过14天 copy(htmlspecialchars_decode($g), $e); } else $avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.jpg')); if ( filesize($e) < 500 ) copy($w.'/avatar/default.jpg', $e); return $avatar; } add_filter('get_avatar', 'my_avatar');
注意在WordPress根目录建立avatar文件夹,并上传default.jpg默认图片,大小是你网站的头像大小;或者建立avatar文件夹之后,刷新评论,会在avatar文件夹默认一张没有名字的图片,将其改成defaul.jpg,也行,关键就是这个大小,不然网站默认显示16*16大小的。
如果有主题加了这样的代码,比如Tstyle主题就是这样:
$grav_url="http://www.gravatar.com/avatar/".md5( strtolower( $email ) )."&d=http://www.gravatar.com/avatar/ad516503a11cd5ca435acc9bb6523536?s=32";
首先将其改成这样:
$grav_url=gravatar_cache($email);
然后把下面代码摔进functions.php文件:
//侧边栏Gravatar头像缓存 function gravatar_cache($email){ $f = md5( strtolower( $email ) ); $w = get_bloginfo('wpurl'); $a = $w.'/avatar/'.$f.'.jpg'; $e = ABSPATH.'avatar/'.$f.'.jpg'; $t = 1209600; //超时时间设定,默认14天,单位:秒 if ( empty($default) ) $default = $w.'/avatar/default.jpg'; if ( !is_file($e) || (time() - filemtime($e)) > $t ){ //当头像不存在或者缓存时间已经超过14天 $r = get_option('avatar_rating'); $g = sprintf( "http://%d.gravatar.com", ( hexdec( $f{0} ) % 2 ) ). '/avatar/'.$f.'?s='.$size.'&d='.$default.'&r='.$r; copy($g, $e); } if (filesize($e) < 500) copy($default, $e); return $a; }
其他的同理!
本文转自:http://onlyisu.in/wordpress-tstyle-gravatar-cache.html
声明:本文采用 BY-NC-SA 协议进行授权,如无注明均为原创,转载请注明转自 你好!刘
本文地址:Gravatar头像缓存功能简单代码版
本文地址:Gravatar头像缓存功能简单代码版
发表评论