WordPress Attachment Title Issue
WordPress 的整個發展過程支援 163種語系 ,其中經常維護的都有72種語系之多。當然繁體中文在很多志工的貢獻服務下,也成為其中很重要的一支語系。不過關於核心程式的變動,偶而還是會造成其他非英語系的系統有一些使用上的錯誤。在經歷幾次資料庫亂碼的災難後,max 個人的使用習慣是將文章代稱改成英文,另外也將上傳的媒體檔案名稱避開以中文方式命名,簡化對於系統程式字元編碼的依賴。而最近聽到朋友反應,原本中文檔名附件支援好好的,好像在最新的版本又發生標題出現亂碼的現象(圖一),雖然這個附件的標題還是可以自行修改成正確的中文說明,不過對於一次需要上傳很多附件檔案的朋友,還是造成了一些小小的困擾。接著就跟大家分享一下官網上官於這個程式 bug的解決方法,有需要的朋友也可以參考一下。
中文檔名附件標題亂碼解決方法
檢視了一下官網上的 Trac Ticket Reports,這個中文副檔名標題亂碼的 Bug問題應該會在 4.6.2版獲得修正,如果等不及需要先修改的話,可以參考一下 #37989 上有人提出的解決方法來修改 /wp-admin/includes/media.php 檔案,不過 max建議採用討串上另外一個方法是編輯子佈景主題的 functions.php檔案,核心程式碼的修改請等到版本更新。
- 使用文字編輯器編輯子佈景主題的 functions.php 檔案,請填入以下語法。
- 語法編輯完成以後請上傳到子佈景主題資料夾下,這時再上傳中文檔名附件時,可以看到標題恢復正常的中文顯示了(圖二)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
function wp37989_fix_encoded_attachment_titles( $data ) { if ( empty( $_FILES ) ) { return $data; } $file = current( $_FILES ); $ext = pathinfo( $file['name'], PATHINFO_EXTENSION ); $name = wp_basename( $file['name'], ".$ext" ); $data['post_title'] = sanitize_text_field( $name ); return $data; } add_filter( 'wp_insert_attachment_data', 'wp37989_fix_encoded_attachment_titles' ); |
結論
在做網站管理時常常會遇到系統程式升級或者是佈景主題/外掛程式等等的升級,並不一定每一次的升級都可以保證我們的網站運作正確。不過基於網站安全與正常運作的最基本原則下,確實的做好網站管理是每一位網站管理者的職責。很高興在 WordPress 有非常多的志工,隨時提供關於程式漏洞或是 Bug的修正程式,讓我們可以安心又安全的維持網站運作,這應該又是一個讓人不得不愛上 WordPress的原因吧。