日本語を含むファイル名のファイルをアップロードした時に自動的にリネームさせる

WordPress 6.4.3
広告WordPress・PHP を学べる本

Amazonのアソシエイトとして、WordPress functions.phpは適格販売により収入を得ています。

概要説明

アップロードファイル名に日本語が含まれていた場合に自動的に英数字のファイル名にリネームさせるカスタマイズ。英数字のみの場合はリネームの対象外にしています。

英数字のみのファイル名のときはリネームなし

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');
}

 

日本語を含むファイル名のファイルをアップロードした時に自動的にリネームさせる

なぜファイル名を変えるのか

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

WordPress Developer Resources

SiteBeacon(サイトビーコン)

サイトが止まったら、すぐに気づける。

ホームページを 5 分ごとにチェックして、止まったとき・エラーが出たとき・SSL やドメインの期限が近いときに、メールでお知らせします。2 サイトまでは、ずっと無料で使えます。

SiteBeacon を見る サイトを直す相談をする

監視で気づいたあとの直す作業も、同じ担当がお受けします。