今天接收到了 WordPress 官方的升级提醒,升级了 4.2.1,用的好好的,刚刚访问个文章,发现一直在加载,打开开发者模式一看,全是 404 啊。。几千个 404,吓到没。。主要就是调用的 s.w.org 里面的一个表情 emoji 图片导致的错误。

然后度娘了一下,发现是升级到了 4.2 导致的问题,因为之前从没出现过呢。

自己根据错误信息搜索了下关键字 (images/core/emoji/),找到了函数。然后再根据函数名找到了调用的地方。解决方法非常简单,使用 "//" 注释掉调用函数的语句就可以了。

方法一:直接从源文件进行处理。 (文件在/wp-includes/default-filters.php)(这个方法有一个隐患,下次更新版本的时候会重新覆盖你这个文件,所以,下次更新还是会出现这种问题。建议方法二,往下看)

方法二:从当前使用主题当中(去除函数 print_emoji_detection_script)

只要在模版函数 functions.php 代码中加入以下一句代码即可。 (记住:是在最后一个 ?> 前面加入

此修复代码来源:张戈博客

Shell

1

2

3

4

5

6

7

8

9

10
remove_action('admin_print_scripts', 'print_emoji_detection_script');//解决 4.2 版本部分主题大量 404 请求问题

remove_action( 'wp_head','print_emoji_detection_script',7);          //解决 4.2 版本部分主题大量 404 请求问题

remove_action( 'init',       'smilies_init',               5);       //移除 4.2 版本表情钩子

remove_action( 'wp_print_styles',   'print_emoji_styles'    );       //移除 4.2 版本前台表情样式钩子

remove_action( 'admin_print_styles',    'print_emoji_styles');       //移除 4.2 版本后台表情样式钩子

remove_action( 'the_content_feed',      'wp_staticize_emoji');       //移除 4.2 emoji 相关钩子

remove_action( 'comment_text_rss',      'wp_staticize_emoji');       //移除 4.2 emoji 相关钩子

remove_action( 'comment_text',      'convert_smilies',   20 );       //移除 4.2 表情相关钩子

remove_action( 'the_content',           'convert_smilies'   );       //移除 4.2 表情相关钩子

remove_action( 'the_excerpt',            'convert_smilies'  );       //移除 4.2 表情相关钩子

以上两种方法,推荐二。原因在方法一里面已说清楚。

 

2015-06-20T11:03:26+08:00发表于:2015-06-20|WordPress|