WordPress 中文檔名自動更名,解決中文檔名問題

相信做網頁開發的工作者都知道,盡量不要使用中文檔名,因為可能會有未知的問題會發生,大部分還是建議英文、數字為檔名格式,尤其 WordPress 常常會使用到全世界開發的插件,還是以英文與細微大宗拉,舉例說明:如果插件是跟檔名有關,若用正規表達式來判斷檔名就會造成問題

^[a-zA-Z0-9_]*$

透過下方 API 自動將上傳檔案,改用 md5() 來產生,代碼如下:

/**
 * 上傳檔案後自動更名,避免中文檔名
 * Filter {@see sanitize_file_name()} and return an MD5 hash.
 * @link https://stackoverflow.com/a/3261107
 * @link http://stackoverflow.com/a/3261107/247223
 */
function v123_tw_hash_filename( $filename ) {
    $info = pathinfo( $filename );
    $ext  = empty( $info['extension'] ) ? '' : '.' . $info['extension'];
    $name = basename( $filename, $ext );
    return 'v123-tw-'.md5( $name ) . $ext;
}
add_filter( 'sanitize_file_name', 'v123_tw_hash_filename', 10 );

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料