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

この記事は約3分で読めます。
記事内に広告が含まれています。

みなさん、いかがお過ごしだったでしょうか。

どうも、れきをくん(@rekiwokun)です。

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

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

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

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

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

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

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

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

見つけました。

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

では、今回の講義を始めます。

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

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

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

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

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

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

ただ更新されていないため、最新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をコピーしました