英数字のみのファイル名のときはリネームなし
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');
}

なぜファイル名を変えるのか
サイトを引っ越すとき、ファイル名が日本語だと、サーバーによっては文字コードのちがいで正しく移せないことがあります。

