WP的gravatar评论头像因被Q而不能显示,解决这一头像不显示问题的办法 – 阳光实验室

因为过年,两个月没有更新文章了。进入牛年以后我发现有一些变化,就在不久前我回来一看,怎么评论区的图片都不显示了,全都是打不开。正当我纳闷的时候,我看到很多博主的博客评论区的头像也是不显示的,难道是被Q了。

 

gravatar头像是WP旗下的产品,中文名为全球评论头像系统,logo为一个逆时针旋转90度的G。在头像不显示后我将其中一个头像的链接单独打开,还真打不开。接下来我扶着梯子一试,打开了。关了梯子又打不开了。所以我知道啥原因了。

 

然后我查了一下其他博主的反馈,其中一个博主提到了在2021年2月的时候,WP的评论头像系统gravatar遭到了Q,这下明白了所有的G家头像国内全都看不到了,得挂梯子。

 

查了一下解析到的IP地址国内访问没有问题,难道域名又被污染了?

 

去ping.pe一查域名解析真相大白,跟cloudcone的控制台一样,gravatar.com以及所有子域名都遭到DNS污染。国内解析与国外完全不一样且每一个访问者解析出来的IP都是各不相同,所以经历过cloudcone控制台事件的我们自然知道发生了什么。

 

要想临时解决这个问题,请参考之前我们说过的cloudcone控制台域名DNS污染的解决办法(就是改hosts) http://www.zzygx.cc/?p=564

 

改hosts的办法只能在这一台计算机上临时解决被Q的问题,换机器就失效了。所以必须是常用的电脑才可以这样操作。

 

请将以下内容写入hosts(提醒:只能使用http进行访问!!!)

 

192.0.80.239 gravatar.com#null#null
192.0.80.239 cn.gravatar.com#null#null
192.0.80.239 en.gravatar.com#null#null
192.0.80.239 0.gravatar.com#null#null
192.0.80.239 1.gravatar.com#null#null
192.0.80.239 2.gravatar.com#null#null
192.0.80.239 secure.gravatar.com#null#null

 

192.0.80.240 gravatar.com#null#null
192.0.80.240 cn.gravatar.com#null#null
192.0.80.240 en.gravatar.com#null#null
192.0.80.240 0.gravatar.com#null#null
192.0.80.240 1.gravatar.com#null#null
192.0.80.240 2.gravatar.com#null#null
192.0.80.240 secure.gravatar.com#null#null

 

192.0.80.241 gravatar.com#null#null
192.0.80.241 cn.gravatar.com#null#null
192.0.80.241 en.gravatar.com#null#null
192.0.80.241 0.gravatar.com#null#null
192.0.80.241 1.gravatar.com#null#null
192.0.80.241 2.gravatar.com#null#null
192.0.80.241 secure.gravatar.com#null#null

 

192.0.80.242 gravatar.com#null#null
192.0.80.242 cn.gravatar.com#null#null
192.0.80.242 en.gravatar.com#null#null
192.0.80.242 0.gravatar.com#null#null
192.0.80.242 1.gravatar.com#null#null
192.0.80.242 2.gravatar.com#null#null
192.0.80.242 secure.gravatar.com#null#null

 

这里解释一下为什么hosts文件要写这么一大堆,而且也不能https访问。根据我们查询得知目前可以使用的gravatar.com的服务器IP地址是192.0.80.239/240/241/242,因此我们可以随便写一个IP地址到hosts,也可以为了防止其中一个失效把4个地址全写上。不管真正的解析地址是什么,这次我们统一指定IP,改成能用的IP地址。secure.gravatar.com是G家头像的HTTPS访问域名(其他域名也有HTTPS版),其原解析地址192.0.73.2国内访问超时(不是Q,是超时丢包)。所以 https://secure.gravatar.com/ 以及其他https的链接都不能访问,只能用http访问。这就是为什么改hosts只能用http访问不能用https访问的原因。

 

改hosts这种方法仍然存在着巨大的弊端,因此仅用于临时使用。要想彻底解决WP里面的显示问题以及https的访问问题,请往下看:

 

如上,改hosts只能解决http的访问,https的访问依然无效。https的访问除了可以使用正向代理(科学爬梯)之外也可以使用我们之前曾介绍过的Nginx反向代理实现,具体方法请看之前的文章 http://www.zzygx.cc/?p=605

 

使用Nginx反代就可以轻松反代https网站,实现用自己的域名访问G家头像,这个谁都可以做,会做的早就有自己的镜像了。

 

接下来我们就要说重点了,那就是怎么解决WP博客评论头像的显示问题。目前已知的有两个办法,一个是修改主题内的域名链接,另一个方法是最简单粗暴的办法,那就是使用插件。

 

首先我们说一下主题内的链接修改,懂修改的大鸟可以做。对于不懂怎么改代码的小白我不推荐此方法,因为一旦失误就惨了。

 

我们只需要加入以下代码到当前WordPress主题的 functions.php 文件中:

(在WP控制面板里点击“外观”-“编辑”找到 “模板函数 functions.php” 在最后进行修改)

 

红色部分我们可以改成我们自己的镜像地址或者是任何可用的镜像地址都可以,保存主题配置文件后再清一下浏览器缓存,一般就能看到头像显示了,并且头像的服务器地址也变为镜像的地址,这样就成功了。

 

前面我说过这个方法需要你会改代码,要是不会改可千万别去改这个代码(或者改之前一定备份该文件)。如果不会改那就用最后一个解决的办法,也是最简单的部分,用插件。

 

这类插件有很多,其中最著名的就是 wp-china-yes 插件

 

这里推荐一下 wp-china-yes 插件,这是国内WP中国本土化社区开发的致力于国内WP用户能方便使用WP的插件(在这里特别感谢:WP中国本土化社区的站长孙锡源)。主要解决了WP的各种不足,比如由于WP主要面向西方社会尤其是英语国家市场,WP的设计完全是西方英语国家的使用习惯。由于东西方存在巨大的文化差异,因此WP有些地方就显得格格不入。比如需要连接国外服务器甚至是被Q的服务器才能获取到一些资源,以及不久前的CDN 429问题,以及使用谷歌库加载速度慢的问题,这款插件就是解决这类问题。插件启用后会自行监听所有境外流量并进行加速,解决后台访问卡的问题、主题插件商店以及后台资源可以使用公共资源加速。让国内的WP也能体验到流畅的使用,大幅提升加载效率。

 

此前这款插件的研发目的是为了解决当年的429问题而生的,让国内用户可以直接访问反代加速后的WP进行主题插件下载和版本升级。现在cn.wordpress.org在国内的正常访问早已解决,因此这个插件的作用也就变成了加速反代G家头像以及后台、商店和谷歌公共库的访问。所以用他就能完全解决这个问题,一劳永逸。

 

首先我们要先下载这款插件,由于这个插件是通过监听WP的海外流量来实现的国内加速,对官方的资源加载进行了修改,这样做必然会被wordpress方面认为是破坏了官方的利益。所以WP官方的插件在去年4月将这个插件下架,所以在官方下载里我们是找不到这款插件的,只能网上自己搜插件的资源。这里为了节省大家的时间我就给大家官方插件和我们自己备份的插件的下载地址,下载后放入wp-content目录下的plugins目录即可。

 

官方下载地址:

 

https://a1.wp-china-yes.net/apps/wp-china-yes.zip

 

本站备份下载地址:

 

https://oss.zzygx.ml/data/files/wp-china-yes.zip

 

http://oss.zzygx.cf/data/files/wp-china-yes.zip

 

插件只有一个php文件,没有任何多余的文件,放入wp-content目录下的plugins目录里然后登录后台在插件里就会出现。

 

 

我们点击“启用”就开启插件,现在就能立刻开启反代加速

 

 

开启后点击“设置”就可以进行设置

 

 

在加速G家头像这里选择“全局加速”,就能实现前台和后台的显示。之前429的时候是选择第一项中的官方应用商店镜像加速来实现绕过429的下载更新。现在官网已经好用了,这里就没啥实际作用了,仅仅是起到了加速的作用。因此我们只需把中间这个设置好就行,如果后台访问卡就选择开启后台加速,最后别忘了点保存。到此我们就完成了插件的设置。

 

现在我们可以看一下后台的评论管理区和前台的文章评论区,我们看到头像全都显示了。根据插件的默认反代设置,头像的链接会显示一个 https://gravatar.wp-china-yes.net/ 域名开头的镜像链接,如果选择默认设置的话这样就已实现了头像的显示,不用改就能用,虽然是使用的插件的链接地址。肯定有人想问,可不可以显示自己域名的反代呢。完全可以。由于这只是一个php文件,因此只要会改php就能将反代域名改成自己的或其他可用的。前提是这个反代必须可用,不能用那还不如直接用官方的了。

 

只需改一下下图的这个地方就能实现(需提前做好反代镜像以及域名解析)

 

 

就是这里,默认是 ‘gravatar.wp-china-yes.net’ 。我们可以将其改为任意可用的镜像域名,可以是自己的也可以是别人公开的都可以。Nginx反向代理从技术上不难实现,只需准备好一个国外的VPS(国内被Q,反代了也是无效,白搭)然后安装好Nginx并创建好虚拟主机写好虚拟主机的配置文件再重启Nginx就完事了,谁都可以操作。改好保存并上传回去之后,我们可以看到无论是后台评论管理区还是前台文章评论区,头像的域名全都换成了你设置的域名了,只要你的域名、VPS和Nginx服务器没有问题,那么头像的显示也就没有任何问题。

 

以上就是关于G家头像被Q的一些解决办法,如果你还有这方面的问题,欢迎留言讨论。

 

本站的自建反代gravatar镜像地址 https://gravatar.zzygx.in/ (如果看不到头像可以自行将链接域名替换为gravatar.zzygx.in)

发表评论

电子邮件地址不会被公开。 必填项已用*标注