今天接收到了 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 表情相关钩子 |
以上两种方法,推荐二。原因在方法一里面已说清楚。