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等静态文件也可以缓存。