c0d3man52

Webサイト制作

WordPressでメディア(画像)のファイルを名をランダム変数にする

WordPressに画像などのメディアファイルをアップロードする場合、デフォルトでは「/年/月/日」のフォルダ内に、アップロード元のファイル名で保存されます。今回は、ここをランダム変数にしてみます。

更新日: 2019.12.11公開日: 2017.8.21

WordPressのメディアの保存ルールと問題点

WordPressのデフォルトの設定では、画像などのメディアファイルをアップロードすると「/年/月/日」のフォルダ内に、アップロード元のファイル名で保存されます。

これだと、

  • メディアのリンクを書き換えたい時
  • 画像を別サーバーに移したい時
  • なんかのタイミングで同じ名前のファイルをアップロードした時

などに管理が面倒になります。

メディアの保存ファイル名を乱数にする

では、実際にメディア(画像)のファイルを名をランダム変数にしてみましょう。

function.phpに設定を書く

中身は、参考にさせてもらったれいぶろぐさんのコードまんまです。以下、れいぶろぐさんのコードです。

function rename_file_md5($fileName) {
    $i = strrpos($fileName, '.');
    if ($i) $Exts = '.'.substr($fileName, $i + 1);
    else $Exts = '';
    $fileName = md5(time().$fileName).$Exts;
    return strtolower($fileName);
}
add_filter('sanitize_file_name', 'rename_file_md5', 10);

参考:【WordPress】アップロードしたファイル名をランダムな文字列にする【プラグイン不要】

これだけfunction.phpに記載すれば、ファイルが乱数になります。

仕組みとしては、「時間とファイル名を連結した文字列を、MD5でハッシュ値にしている」形です。これですと、同じファイル名になることはほとんどないと言えますね。素晴らしい!


一人でWordPressサイトを運営している場合はあまり必要ない機能かもしれませんが、複数ユーザーで投稿したりする場合は設定しておきたい機能ですね。