WordPress 4.2.1中Gravatar评论头像不显示的解决办法

Gravatar头像出现无法加载的问题,不仅致使wordpress站点的用户头像无法正常显示,还对网页加载速度及后台操作速度造成了影响。之前Pop已经提供了一种方法解决(WordPress中gravatar评论头像不显示的解决办法http://429006.com/article/technology/3541.htm),不过针对最新的WordPress 4.2.1版本中/wp-includes/pluggable.php这个文件已经对代码进行了调整,所以之前分享的代码只能对4.2.1以下版本有效。这里Gravatar头像无法加载显示的解决办法是利用functions.php的修改方法,就可以一劳永逸了。

一、利用多说Gravatar头像中转服务器替代头像默认服务器。

添加如下代码到wordpress主题的functions.php模板文件中:

function mytheme_get_avatar( $avatar ) {
$avatar = preg_replace( "/http:\/\/(www|\d).gravatar.com/","http://cn.gravatar.com",$avatar );
return $avatar;
}
add_filter( 'get_avatar', 'mytheme_get_avatar' );

缺点:由于多说服务稳定性欠佳,有时也会暂时无法显示头像。如编辑已发表的文章,并且文章已有评论,还需要在文章编辑页面打开右上的“显示选项”去掉“评论”勾选,否则在点击更新文章按钮后,还是会向Gravatar头像服务器发送获取头像请求,从而影响页面加载速度。

二、使用https方式(SSL)调用Gravatar头服务器地址。

添加如下代码到wordpress主题的functions.php模板文件中:

function get_ssl_avatar($avatar) {
$avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&.*/','<img src="https://cn.gravatar.com/avatar/$1?s=$2" class="avatar avatar-$2" height="$2" width="$2">',$avatar);
return $avatar;
}
add_filter('get_avatar', 'get_ssl_avatar');

缺点:添加以上代码后,可能会造成一些头像缓存插件失效,而且使用头像本地缓存会造成页面打开异常缓慢。

Related Posts