WordPressの画像のファイル名をプラグインを使わずにランダム文字にする

WordPressの画像のファイル名をプラグインを使わずにランダム文字にするWordPress
この記事は約3分で読めます。

この記事を見に来られた人たちは、みんなWordPressをご利用の方だと思います。

そんな方たちに質問をしたいのですが、

「画像のファイル名・・・どうつけよう・・・」

と思ったことはないですか?

わたしはずっとファイル名の付け方に悩んでいてパスワード生成サイトで、ランダムの数字を作って付けていました。

いよいよこれではスマートではない。

一流のアフィリエイター、ライターになるにはこんなダサい人間ではいけない。

そう思い、ネットの海に飛び込み獲物を探しました。

見つけました。

今回はそれを紹介していきたいと思います。

プラグインを使用する方法

まずは、テーマ関数をいじるのが怖い!!!そんな難しいことはしたくない!!

そんな方もいると思うので、プラグインもご紹介しておきます。

MD5 Media Renamer
Sanitize and rename automatically media files during upload using PHP time() as prefix and the file name encrypted in MD5() as suffix.

テーマ関数をイジらなくてもファイル名をランダムにしてくれる神プラグインです。

画像をアップロードすると同時にファイル名をハッシュ値に変換して保存してくれます。

複数の画像が同じ名前になることは「ほぼ」無いのですべての画像ユニークな名前になると思います。

ただ更新されていないため、最新WordPressにインストールをすることができません。
公式サイトからプラグインをダウンロードした後に、手動でアップロードしてインストールしましょう。
スポンサーリンク

プラグインを使用しない方法

ここからはテーマ関数(functions.php)を使う方法をご紹介します。

プラグインを使用するとレスポンスが悪くなるので、テーマ関数を利用することをおすすめします。

下記のコードを追加してください。

// ファイル名をランダム文字にする
function rename_upload_file($fileName)
{
	// ファイル名が大文字の場合もあるので、ファイル名全てを小文字に変換する
	$fileName = strtolower($fileName);
	// 「.」の位置を取得
	$index = strrpos($fileName, '.');
	// 拡張子を取得
	$exts = $index ? '.' . substr($fileName, $index + 1) : '';
	
	// 画像ファイルか拡張子でチェックする
	if (in_array($exts, array('.jpg','.jpeg','.gif','.png'))) {
		// ファイル名をmd5で生成する
		$fileName = md5(time() . $fileName) . $exts;
	}
	
	return $fileName;
}
add_filter('sanitize_file_name', 'rename_upload_file', 10);

プログラムの中身の解説

プラグインと同じで、ファイル名をMD5というハッシュ値に変換しています。

さきほども記載しましたが、ファイル名だけだと「ほぼ」ユニークに名前となります。

そうです。まれに被ることがあるんです。

そこで、「時間+ファイル名」をハッシュ値に変換することで被りがないようにしています。

また、すべてのファイルをハッシュ値に変換されると困るので、画像ファイルだけになるように条件分岐を追加しています。

まとめ

これで何も考えずに、画像をぽんぽん使っていくことができます。

自動化できるところは何でも自動化していくべきですね。

ブログの制作もここまでくると、記事の自動作成もしてもらえると、我々も本当に楽ですね。

スポンサーリンク
タイトルとURLをコピーしました