今天接收到了 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 表情相關鈎子 |
以上兩種方法,推薦二。原因在方法一里面已説清楚。