WordPress自定义gravatar头像,缓存Gravatar头像为网站提速

WordPress评论是一个网站的灵魂,直接决定着网站的收录和权重,然而wordpress头像默认的是gravatar头像,访问网站时,读取速度非常慢,gravatar头像的服务器是国外的,这不光自己的头像慢,其它评论者的头像下载速度也慢,所以抛弃使用gravatar源地址吧。

关于WordPress头像的设置,想必大多数的博客站长会非常注重,无论是博主的头像,还是评论者的头像,直接影响着网站的精神面貌。

Gvatar的评论头像在文章底部的评论栏里出现或者在侧边栏出现,一般来说,评论头像越多,网站人气越足。国内有不少的wordpress博客主文章粘度很高,每一篇文章都超过了100个评论,生成100多个不同的评论头像,从某种意义评论头像列表上还能美化网站。

种种原因,使用wordpress默认的gravatar头像,影响网站访问体验,所以要修改成本地的自定义头像,如此访问速度才会快速。当然你也可以不显示头像,只显示评论名称,有不少博主取消了gravatar头像,是否显示头像,自己决定,反正我感觉显示头像,评论栏更好看。

博主添加自定义头像
编辑主题functions.php文件,把下边代码复制到第二行,也就是

add_filter( ‘avatar_defaults’, ‘newgravatar’ );
function newgravatar ($avatar_defaults) {
$myavatar = get_bloginfo(‘template_directory’) . ‘/images/wpdaxue-gravatar.jpg’;
$avatar_defaults[$myavatar] = “思德心语”;
return $avatar_defaults;
}

博客注册会员添加自定义头像
如果博客开放了注册会员功能,可以使用Simple Local Avatars和 WP User Avatar,为注册用户提供上传自定义头像功能。插件启用后,你就可以在后台 >用户>我的个人资料 下看到自定义头像上传功能了

Simple Local Avatars上传方法:

WordPress自定义gravatar头像,缓存Gravatar头像为网站提速
WP User Avatar上传方法:

WordPress自定义gravatar头像,缓存Gravatar头像为网站提速
缓存gravatar头像为网站提速
评论者有没有设置自定义Gravatar头像时,访问网站读取Gravatar网站的图片,非常的慢,一直在那转圈,影响访问体验,有两种方式缓存Gravatar头像的方式,一种是缓存Gravatar头像到本地,一种是缓存Gravatar到七牛云存储上。

第一种方式:缓存Gravatar头像到本地

在主机根录创建一个权限755的avatar文件夹,必须有这个755的写入权限,要不然缓存不上图像,上传一个default.jpg的默认头像到该文件夹里。复制下边代码到

 function my_avatar( $email, $size = ’32’, $default = ”, $alt = ”) {
 $f = md5( strtolower( $email ) );
 // 以下代码将头像缓存到wp-content目录下
 $a = get_bloginfo(‘template_url’) . ‘/avatar/’. $f . $size . ‘.png’;
 $e = get_template_directory() . ‘/avatar/’ . $f . $size . ‘.png’;
 $d = get_template_directory() . ‘/avatar/’ . $f . ‘-d.png’;
 // 如果要将头像缓存到当前主题目录下,请将3-5行代码改成:
 // $a = get_bloginfo(‘template_url’) . ‘/avatar/’. $f . $size . ‘.png’;
 // $e = get_template_directory() . ‘/avatar/’ . $f . $size . ‘.png’;
 // $d = get_template_directory() . ‘/avatar/’ . $f . ‘-d.png’;
 if($default==”)
 $default = get_bloginfo(‘wpurl’).’avatar/default.jpg’;
 $t = 2592000; // 缓存有效期30天, 这里单位:秒
 if ( !is_file($e) || (time() – filemtime($e)) > $t ) {
 if ( !is_file($d) || (time() – filemtime($d)) > $t ) {
 // 验证是否有头像
 $uri = ‘http://www.gravatar。com/avatar/’ . $f . ‘?d=404’;
 $headers = @get_headers($uri);
 if (!preg_match(“|200|”, $headers[0])) {
 // 没有头像,则新建一个空白文件作为标记
 $handle = fopen($d, ‘w’);
 fclose($handle);
 $a = $default;
 }
 else {
 // 有头像且不存在则更新:发条常识网https://www.fatiao.net/
 $r = get_option(‘avatar_rating’);
 $g = ‘http://www.gravatar。com/avatar/’. $f. ‘?s=’. $size. ‘&r=’ . $r;
 copy($g, $e);
 }
 }
 else {
 $a = $default;
 }
 }
 $avatar = “{$alt}’ src=”;
 return apply_filters(‘my_avatar’, $avatar, $email, $size, $default, $alt);

第二种方式:缓存Gravatar头像到七牛云存储

七牛云存储的CDN加速,就是缓存静态文件,自然也就可以缓存Gravatar图片了,其它的站内的图片、css等静态文件也可以缓存。

你可能感兴趣的:(WordPress)