WordPress4.2升级修复补丁:解决大量404请求以及评论表情路径及尺寸异常问题

上一篇文章写到了 WordPress 升级4.2版本后部分主题出现了大量404请求的问题,匆忙解决也没深究原因。今天继续调试主题却发现了评论表情不显示了,看来又是4.2惹的祸了!

于是埋头折腾,总算把问题解决了,为了方便遇到和我一样问题的站长,张戈特意将修复方法整理成PHP补丁,降低修复难度,如果你也遇到此类问题,且往下看。WordPress4.2升级修复补丁:解决大量404请求以及评论表情路径及尺寸异常问题

一、前因后果

这次 WordPress 升级4.2总体来说没有以前版本升级来得顺畅,目前已发现如下3个问题:

  1. 有部分主题的前台会产生大量的404错误请求(站外资源);
  2. 评论表情名称变更导致表情无法显示或者无法通过钩子更改;
  3. 外观-->菜单-->显示选项-->点不出来(已有修复方法,猛戳直达==>)。

第 1 个问题:分析了一下原因,和以前出现的谷歌字体加载卡出翔的情况类似,部分主题可能触发了4.2新增的CDN功能,在前台插入了国外CDN资源,不巧却被厚实 GFW 关门闭客了,而且居然还有重试机制,于是就产生了大量的错误请求!

第 2 个问题:其实是因为 4.2 对评论表情的重构(样式变更、名称变更、CDN机制等)造成的。和第 1 个问题有所关联,都不约而同的和 4.2 下的 emoji 关键标签挂上了钩。emoji 这个玩意我暂时还没有去研究是啥新玩意,但从目前的情况来看,这个玩意暂时不适合天朝环境。。。

张戈博客上一篇文章《解决WordPress升级4.2后调用国外图片导致大量404请求的问题》已经粗略分享了解决办法,不过在下文中还会分享一个整体修复补丁。

正对第 2 个问题,下面说一下手动修复方法。

二、修复思路

表情名称重构了,所以我们需要找到那个表情过滤函数,然后改变它。我们知道评论表情里面有名为 mrgreen 的表情代号,所以最笨最有效的方法就是在 WordPress 全局搜索存在这个关键词的 php 文件(可以在 Linux 下grep,也可以在 Windows 下借用 UE 或 Editor ++等),幸不辱命,总算顺藤摸瓜找到症结所在!

①、表情名称变更

问题截图:

WordPress4.2升级修复补丁:解决大量404请求以及评论表情路径及尺寸异常问题

通过搜索,我找到了这个将代号过滤成表情文件的函数 smilies_init ,位于 wp-includes/functions.php 文件中。

老版本代码:WordPress4.2升级修复补丁:解决大量404请求以及评论表情路径及尺寸异常问题

新版本代码:

WordPress4.2升级修复补丁:解决大量404请求以及评论表情路径及尺寸异常问题

明显把文件名称给改了,所以修复方法就是用老版代码替换新版本代码即可。

②、表情尺寸异常

解决表情不显示问题之后,发现这表情尺寸也醉了:

WordPress4.2升级修复补丁:解决大量404请求以及评论表情路径及尺寸异常问题

先让我感叹一下,老外的视力素质真的都这么好吗?反正我是觉得太小了。。。

还是老方法,全局搜索 height: 1em; max-height: 1em ,立竿见影!在 wp-includes/formatting.php 找到3处相关代码。

先手动修改后发现还是不凑效,于是继续检查,发现网站前台还输出了一个表情样式定义:

于是继续全局搜索以上代码中的关键词,于是又找到了 print_emoji_styles() 函数,在通过函数名找到调用地方,手动注释后发现可以解决问题:

WordPress4.2升级修复补丁:解决大量404请求以及评论表情路径及尺寸异常问题

接下来就是发现问题就依葫芦画瓢解决问题问题的过程,最终全部搞定!

动手能力强的朋友估计已经去折腾去了,如果你觉得这样很麻烦,那就继续往下看吧!

三、修复补丁

这样修改不但麻烦,而且一旦WP更新,统统失效,所以张戈整理成一个php补丁,分享给大家,只要集成到主题中就可以解决这些问题了!

具体代码如下:

将下载的文件解压,并查看代码倒数第5行中的表情路径和你主题所用表情是否对应,若不对应请自行根据实际情况修改 /images/smilies 指向你的表情文件夹即可(若没有表情文件,请从本文下载并上传到主题目录亦可)。

 

然后上传到主题目录,修改主题目录下的 functions.php,在最后一个?>之前新增如下调用代码即可:

保存后,去前台刷新应该就一切正常了。

四、惯例总结

本次 WordPress 升级感觉改动还是挺大的,所以肯定也存在不少BUG,尤其是在格格不入的天朝环境下更是容易出现一些卡出翔的问题。不过 WordPress 在天朝的使用率如此之高,相信官方很快就会更新下一个版本,来修复诸如此类的问题。

张戈也算是一个狂热的 WordPress 折腾爱好者,所以在官方修复之前先将自己的折腾成功分享出来,让更新出现问题的站长提前解决这些烦人的问题。

好了,就说这么多了,如果你更新后没有这些问题,就当本文分享的是一个解决 WordPress 网站故障的一个思路吧!

文件下载

无限续期,永久免费科学上网服务,你值得拥有!

发表评论

gravatar

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen:

刷新评论

目前评论:19   其中:访客  14   博主  5

  1. faritor 3 来自天朝的朋友 谷歌浏览器 Windows XP 江西省南昌市 电信

    哇,这个主题蛮不错的么.

  2. Youth.霖 4 来自天朝的朋友 谷歌浏览器 Windows 8.1 吉林省长春市 吉林大学

    为什么你这有的这三个问题我都没有……

    • 张戈 [博主] 来自天朝的朋友 Safari浏览器  Android 4.4.2 NX40X Build/KOT49H 广东省广州市 移动

      前2个问题和主题有关系,第三个问题理论上都有,目前还不知道原因,修复方法上午已分享。

  3. World 3 来自天朝的朋友 谷歌浏览器 Windows 7 广东省深圳市宝安区 电信

    修复补丁的下载链接失效了 :shock:

    • 张戈 [博主] 来自天朝的朋友 谷歌浏览器 Windows 7 广东省深圳市 电信

      多谢反馈,已修复~

  4. JV 1 来自天朝的朋友 火狐浏览器 Windows XP 广西南宁市 电信

    可以加一句

    不然后台也会一直 s.w.org… 加载中

    • 张戈 [博主] 来自天朝的朋友 谷歌浏览器 Windows 7 广东省深圳市 电信

      多谢反馈,一会更新进去。

  5. 秋叶博客 3 来自天朝的朋友 谷歌浏览器 Windows 7 广东省广州市天河区 广东省广州市

    替换之后下次升级还是会变~

    • 张戈 [博主] 来自天朝的朋友 谷歌浏览器 Windows 7 广东省深圳市 联通

      把补丁集成到主题当中就不会了。

  6. pone 0 来自天朝的朋友 谷歌浏览器 Windows 8.1 湖南省郴州市 联通

    4.2.2头像尺寸也异常了。前台后台头像都是100px。博主有办法么

  7. 俊采星驰 0 来自天朝的朋友 谷歌浏览器 Windows 7 大连理工大学 环境与生命学院环境系

    非常好的补丁,出现的所有网络问题秒解决。 :smile:

  8. Ayon 0 来自天朝的朋友 谷歌浏览器 Windows 10 广西贺州市 电信

    我的表情大小问题依旧没能解决,有办法吗?

  9. Tiki 0 来自天朝的朋友 谷歌浏览器 Windows 8.1 山东省青岛市 联通

    博主太厉害了,按照你的方法果然好用了!

  10. 小残、 3 来自天朝的朋友 谷歌浏览器 Windows 7 重庆市 电信

    升级到最新版后发现这个图片 怎么解决?
    评论

    • 张戈 [博主] 来自天朝的朋友 QQ浏览器 Windows 7 广东省广州市 电信

      没见过。。

  11. xhhjin 0 来自天朝的朋友 火狐浏览器 Windows 7 浙江省杭州市 电信

    原来变了这么多,正诧异我的主题表情怎么废掉了呢。。

  12. 嘟嘟 1 来自天朝的朋友 谷歌浏览器 Windows 7 北京市 电信

    :mrgreen: 太给力了,已解决,谢谢

  13. 助推博客 0 来自天朝的朋友 火狐浏览器5.0 Windows 8.1 河南省驻马店市 电信

    看起来挺难解决,慢慢看吧

  14. 悟空 3 来自天朝的朋友 火狐浏览器 Windows 10 浙江省台州市 移动

    又帮到我忙了,非常感谢!~

加载中,请稍候...