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

    技术2022-07-29  77

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

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

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

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

    博主添加自定义头像 编辑主题functions.php文件,把下边代码复制到第二行,也就是<?php下边。把主题图片文件夹logo所在的位置/images/logo-trans.png改成改成自己的路径,直接复制logo地址,粘贴修改下就行了,默认头像直接写自己博客名称就行,再访问博客头像,就变成本地地址的了。

    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的默认头像到该文件夹里。复制下边代码到<?php下边,评论者的头像就逐渐的缓存到avatar文件夹了。

     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 = “<img alt='{$alt}’ src='{$a}’ class=’ avatar avatar-{$size} photo ‘    height='{$size}’ width='{$size}’ />”;  return apply_filters(‘my_avatar’, $avatar, $email, $size, $default, $alt); } 

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

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

    Processed: 0.008, SQL: 9