概要説明
アップロードファイル名に日本語が含まれていた場合に自動的に英数字のファイル名にリネームさせるカスタマイズ。英数字のみの場合はリネームの対象外にしています。
英数字のみのファイル名のときはリネームなし
functions.php
/*---------------------------------------------------- 日本語ファイル名のファイルをアップロードした時にリネーム ----------------------------------------------------*/ if ( !function_exists( 'media_file_rename_md5' ) ){ function media_file_rename_md5( $filename ) { // 英数字・ハイフン・アンダースコアのみの場合はリネーム対象外 if (!preg_match("/^[a-zA-Z0-9\.\-\_]+$/",$filename)) { // 拡張子取得 $ext = pathinfo($filename, PATHINFO_EXTENSION); // 時間を加えて同一ファイル名も別のファイル名になるように $filename = md5(time().$filename).'.'.$ext; // 英字を小文字に変換 $filename = strtolower($filename); } return $filename; } add_filter('sanitize_file_name', 'media_file_rename_md5'); }
なぜリネームを行うのか
ホームページを引っ越しする際にファイル名が日本語になっているとサーバーによっては文字コードの関係で正常に移管できない場合があります。