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