問題由來

出現這種問題是因為小編在日常生活中使用 WordPress 編輯文章的時候,上傳的圖片必須是英文名的,如果是中文名的要麼就是亂碼,要麼就是圖片不顯示,每次都要修改文件名再上傳,如果遇到圖片多的,那麼操作起來就十分的複雜了,而今天特地找了相關的資料,留個 WordPress 教程給大家,方面大家遇到這樣的問題能夠有效的解決!

20110425131222-1062774419

解決方法:

將以下代碼加入 WordPress 主題文件的 functions.php 文件內:

  1. function upload_file($filename) {  
  2. $parts = explode('.'$filename);  
  3. $filename = array_shift($parts);  
  4. $extension = array_pop($parts);  
  5. foreach ( (array$parts as $part)  
  6. $filename .= '.' . $part;  
  7.     
  8. if(preg_match('/[一-龥]/u', $filename)){  
  9. $filename = md5($filename);  
  10. $filename .= '.' . $extension;  
  11. return $filename ;  
  12. }  

2014 年 02/21 更新:WordPress 上傳文件,文件名自動 md5 加密並截取指定長度

  1. function rename_filename($filename) {  
  2. $info = pathinfo($filename);  
  3.     $ext = emptyempty($info['extension']) ? '' : '.' . $info['extension'];  
  4. $name = basename($filename$ext);  
  5.     return substr(md5($name), 0, 16) . $ext  
  6. add_filter('sanitize_file_name', 'rename_filename', 10);  

解決説明:

通過上面的代碼,就可以判定我們上傳的附件是中文還是英文,如果是中文就會將名稱自動轉化成 md5 值來儲存。這樣,我們上傳中文圖片的時候就不用擔心圖片的不顯示或者出現亂碼了!