解决WordPress升级4.2后调用国外图片导致大量404请求的问题

前几天就收到 WordPress 官方发来的预更新通知,告诉我本周会更新到 4.2。果然,昨天就收到了更新推送消息,随手就点击升级了,前台打开看了下没有看到明显的问题,也就放任不管了。

解决WordPress升级4.2后调用国外图片导致大量404请求的问题

今天中午抽空调试新主题的时候,发现控制台爆出了大量 404 错误请求:

解决WordPress升级4.2后调用国外图片导致大量404请求的问题

我擦!不会是中招了吧?现在用的是鸟哥最新的 Begin 主题,于是到鸟哥博客看了下控制台,结果也是大量 404 报错!这么明显的错误,鸟哥肯定不会放出来的!

当我看到鸟哥有一条公告说的是【WordPress 更新 4.2,Begin 也升级到了 1.3 版本】,我突然醒悟,肯定是更新 WordPress4.2 带来的问题!

部分报错信息如下:

  • GET http://www.davidjeremiah.org/site/error404.aspx?404;http://s.w.org:80/images/core/emoji/72x72/1f606.png 404 (Not Found)
  • GET http://www.davidjeremiah.org/site/error404.aspx?404;http://s.w.org:80/images/core/emoji/72x72/1f606.png net::ERR_CONNECTION_RESET 

404 错误请求集中在下面 2 个域名:

  • www.davidjeremiah.org
  • s.w.org

看都不用看,肯定是国外的网站,WordPress 更新 4.2 版本后加了某个机制,需要从这个 2 个网站调取图片或其他资源,因为“厚实”的 GFW ,从而导致了大量的错误请求!

于是我根据报错信息,在 WordPress 代码中全局搜索,几番折腾终于找到了关键位置:

解决WordPress升级4.2后调用国外图片导致大量404请求的问题

咱先不管这个功能的具体用意是什么,屏蔽再说!

于是,又全局搜索 print_emoji_detection_script 这个函数,终于找到了调用位置:

解决WordPress升级4.2后调用国外图片导致大量404请求的问题

这下就好办了!直接注释掉这一行收工!

所以,WordPress 更新 4.2 导致大量 404 错误请求的解决办法就是:

方法一、从内核屏蔽

编辑 wp-includes 目录下的 default-filters.php 文件,搜索 print_emoji_detection_script 找到如下代码,并用 // 注释掉即可(后续版本更新时,此修改将会被重置):

解决WordPress升级4.2后调用国外图片导致大量404请求的问题

方法二、从主题屏蔽

在当前主题的 functions.php 最后一个?>之前添加如下代码即可:

两种方法二选一,推荐方法二,一劳永逸。保存后刷新前台再去看控制台应该就一切正常了!

另外,更新 4.2 之后肯定存在各种 BUG,比如后台-->菜单-->显示选项无法点击:

解决WordPress升级4.2后调用国外图片导致大量404请求的问题

此问题已有修复方法,猛戳传送门==>http://zhangge.net/5036.html

评论已关闭!