当前位置:首页 > WordPress > 多说Gravatar头像在WordPress中无法显示的解决方法

多说Gravatar头像在WordPress中无法显示的解决方法

昨天有博主说我的网站访问慢,我很奇怪,我的网站是使用了缓存的,一般都是秒开的,怎么会反应慢呢?结果一看果然是,最后究其原因是由于Gravatar头像0.gravatar.com host被屏蔽了,所以导致gravatar的头像无法加载,最终导致我们的Wordpress网站加载缓慢。据我所知,同样受到困扰的还包括WordPress存储静态文件的s.wordpress.org缓存服务器,以及jQuery的code.jquery.com等。那么有没有解决方法呢?如果你使用Wordpress自带的评论方法,那么解决方法是有的。

方法一:使用多说调用gravatar头像

官方Gravatar的头像所在的路径一般都是www.gravatar.com、0.gravatar.com、1.gravatar.com、2.gravatar.com,这次被屏蔽的就是0.gravatar.com,所以我们只需要把这些头像默认的URL换成多说的host就可以了,因为多说在gravatar之间建立了一个中继器,也就是一份镜像,但是多说是可以访问的,所以这种方法是可行的。

打开主题下的functions.php 文件,将以下代码复制粘贴保存即可:

1
2
3
4
5
6
//多说官方Gravatar头像调用
function mytheme_get_avatar($avatar) {
    $avatar = str_replace(array("www.gravatar.com","0.gravatar.com","1.gravatar.com","2.gravatar.com"),"gravatar.duoshuo.com",$avatar);
    return $avatar;
}
add_filter( 'get_avatar', 'mytheme_get_avatar', 10, 3 );

这样,Gravatar头像的外链地址已经全部到了多说的国内服务器了。

使用Gravatar Fixed头像修正插件

这款插件的原理也是将Gravatar 的host替换国内能够访问的host,Gravatar Fixed插件可以通过函数覆盖的方式,重新自定义Gravatar服务器,直接读取www.gravatar.com 的内容,保证正常访问。当然,假如Gravatar将来提供了国内的镜像(或者有热心网友自行搭建),也可以将地址修改为国内服务器,比如多说的服务器地址,以提高速度。

Gravatar Fixed插件修改Gravatar无法访问的问题

官方Gravatar头像调用ssl头像链接

如果你的网站是使用了SSL证书的,应该就不存在这样的问题,但是大多数网站是没有使用SSL证书的,因此可以加入如下的代码到function.php解决Gravatar头像在Wordpress中无法显示的问题。

1
2
3
4
5
6
//官方Gravatar头像调用ssl头像链接
function get_ssl_avatar($avatar) {
 $avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&.*/','<img src="https://secure.gravatar.com/avatar/$1?s=$2" class="avatar avatar-$2" height="$2" width="$2">',$avatar);
 return $avatar;
}
add_filter('get_avatar', 'get_ssl_avatar');

以上都是说的使用Wordpress自带的评论无法显示头像的问题,但是很多朋友使用的是多说的评论,或者使用的是多说的读者墙,这样也会显示头像无法加载的错误,那么这种方法造成的原因是我们加载的是多说的第三方代码,但是返回给我们的代码还是被和谐了的host,因此我们博客的Gravatar头像显示不正常,多说官方给的说法是:

本地没有的头像,多说需要先访问gravatar,由于gravatar访问慢导致多说服务器有大量阻塞,所以我们暂时关闭了缓存直接访问gravatar,我们正在设计国内通用头像系统哦,敬请期待。

所以如果使用多说评论造成Gravatar头像无法显示的,我们就只有期待多说的服务器返回给我们正确的或者说没有被屏蔽的Gravatar官方Host了。

  • << 博客推广技巧,迅速提升博客的访问量
  • 博客赚钱的方法,如何实现利用博客实现... >>
  • 作者:
    除非注明,本文原创:知道91,欢迎转载!转载请以链接形式注明本文地址,谢谢。
    原文链接:http://www.zhidao91.com/gravatar-duoshuo-wordpress/

    相关文章 近期热评 最新文章

    • 使用微信JDK实现微信接口签名验证
      要使用微信的接口必须在绑定的域名下测试;签名必须先向微信请求到access_token,然后用access_token再去请求jsapi_ticket,最后用jsapi_ticket和相关的参数按照ASCII码...
    • oracle数据库相关操作注意事项
      修改Oracle SGA(共享内存) 很多网站说修改Oracle的内存通过命令 如果你这么做了,那么恭喜你,你的Oracle数据库无法启动了。如果你已经这么做了,恢复Oracle启动的方...
    • oracle数据库相关操作注意事项
      修改Oracle SGA(共享内存) 很多网站说修改Oracle的内存通过命令 如果你这么做了,那么恭喜你,你的Oracle数据库无法启动了。如果你已经这么做了,恢复Oracle启动的方...
    • 使用微信JDK实现微信接口签名验证
      要使用微信的接口必须在绑定的域名下测试;签名必须先向微信请求到access_token,然后用access_token再去请求jsapi_ticket,最后用jsapi_ticket和相关的参数按照ASCII码...
    • ABP开发指南系列教程(2) – 多层架构...
      为了减少复杂性和提高代码的可重用性,采用分层架构是一种被广泛接受的技术。为了实现分层的体系结构,ABP遵循DDD(领域驱动设计)的原则,将工程分为四个层: 展现层(...
    • ABP开发指南系列教程(1) – 入...
      ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称。 ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WE...
    • Windows下 JIRA + Agile + Mysql 破解...
      本文讲述了Windows下 JIRA + Agile + Mysql 破解安装示例教程
    • c#类的构造函数继承关系示例剖析
      本文通过示例代码讲解了c#子类的构造函数与父类的关系,子类怎样集成父类的构造函数的。