在有些環境中 WordPress 上傳中文件案會產生亂碼轉碼等情況,造成檔案連結過長或者檔案無法正常開啟或下載。之前小編曾經寫過一篇文章:《處理 WordPress 上傳中文名附件亂碼問題》,該方法是在 WordPress 上傳檔案時判斷檔名是否包含中文,如果包含則將檔名以 md5 方式加密,但是 md5 加密過後檔名依然是老長一大串,並不美觀,尤其是有強迫症的小夥伴肯定不爽。那麼今天小編就發一段 WordPress 上傳檔案,檔名自動 md5 加密並擷取指定長度的程式碼給大家。
function rename_filename($filename) {
$info = pathinfo($filename);
$ext = empty($info['extension']) ? '' : '.' . $info['extension'];
$name = basename($filename, $ext);
return substr(md5($name), 0, 16) . $ext; //擷取前面 16 個字元
}
add_filter('sanitize_file_name', 'rename_filename', 10);
將以上程式碼加到當前主題 functions.php 檔案後,每次上傳檔案後 WordPress 都會自動將檔案已 MD5 方式加密並且擷取最前面的 16 個字元作為檔名。