WordPressのメディアアップローダーで日本語のファイルをアップロードするとファイルがエンコードされます。
これを防ぐためにfunctions.phpに以下のコードを追加します。
if ( ! function_exists( 'my_rename_mediafile' ) ):
function my_rename_mediafile( $filename ) {
$info = pathinfo( $filename );
$ext = empty( $info['extension'] ) ? '' : '.' . $info['extension'];
if ( $info['filename'] !== 'sitemap' ) {
$filename = md5( time() . $ext );
}
return strlower( $filename );
}
add_filter( 'sanitize_file_name', 'my_rename_mediafile', 10 );
endif;
プラグインでも解決できる
日本語用プラグイン「WP Multibyte Patch」を一番最初に有効化しておけば上記のコードは必要ありませんでした…。
日本語のファイル名の画像は自動で英数字に変換されます。
日本語名ファイル名で起こる問題
なぜ日本語名ファイルがまずいのかというと…
- 単純にエンコードされたファイル名が長すぎる
- サーバー移行などの際にエラーが発生する可能性がある
などなど。
サーバー移行で失敗して最初から入れ直すとなったらとても辛いですね。
ボタン一つ二つの操作で綺麗に移行したいものです。