WordPressメディアファイルのアップロード先変更法

WordPressで「メディアを追加」からメディアをアップロードすると、デフォルトでは/wp-content/uploads/画像ファイルに保存されます。

WordPress本体をルート直下に置いた場合はこんな感じ。

https://yaruzou.net/uploads/contact-point-of-mouse-grip.png

メディア設定で「アップロードしたファイルを年月ベースのフォルダに整理」にしていれば、年と月も入ってきます。

「これでは長くて嫌」という時や、セキュリティを考えてWordpressのコアファイルの場所を秘匿したい場合のメディアアップロード先の変更法です。

このページでは、例としてアップロード先を/imagesというディレクトリに変更します

WordPressのメディア投稿先を変更する前に

メディアファイルのアップロード先の変更自体は簡単です。

ただ、すでに投稿した記事やデータベースのURLを変更する必要があるので手間はかかります。やることは

  1. 既存のメディアファイルを新しいフォルダにコピーする
  2. WordPressのメディアファイル保存先の設定を変更する
  3. 投稿済みの記事の画像URLを変更する
  4. データベースの内容を変更する
  5. テーマのカスタマイザーを利用しているなら、そちらの設定も変更

の5ステップだけ。

URLの一括変更のためには置換ツールが必要になるので、置換ツールをインストールしていない人はWordpressの設定を変更する前にプラグインの準備が必要です。

準備1

メディアの保存先

メディアファイルの保存先は好きなところを指定できますが、場所によって方法が異なります。設定が簡単なのはWordpressをインストールしてある下のディレクトリへの変更です。

WPがwwwルートにインストールされているのなら気にする必要はありません。

メディアファイルの複製

メディアの保存先を変更した後にアップロードするファイルは、新たに設定したディレクトリに保存されます。しかし既存のファイルは以前の場所にあるので、Wordpressのメディアライブラリからは見えなくなります。

そのため既存のメディアを新しく設定したディレクトリに複製する必要があります。

変更がうまく行かなかったときにすぐ復帰できるよう、移動ではなく複製をしてください

画像の数が少なければサーバ管理パネルのファイルマネージャーから操作すると簡単です(画像はさくらインターネットのもの)。

sakura-file-manager-context-menu

準備2

投稿済み記事に掲載されている画像URLを変更するために、置換ツールのプラグインを用意しておきます。

投稿記事とデータベースの置換ツールはなんでもいいです。僕は投稿記事にSearch Regex、データベース置換にはSearch & Replaceを使っています。このページにある画像もこの2つのものです。

テーマのカスタマイザーから設定した画像はテーマ側で管理されているため、改めて設定しなおす必要があるかもしれません。

メディア投稿先の変更

メディア投稿先の変更法1

wp-config.phpにアップロード先を書き加える方法です。

これが手軽なんですが、Wordpressコアファイルのディレクトリが基準になっていて相対パスが機能しません。

例えばWordpressをWPというディレクトリにインストールしている場合、サイトルート直下に持っていくことができません。

      • www root
        • ここには設置できない
        • WP
          • wp-includes
          • wp-admin
          • wp-content
            • uploads
        • index.php

アップロードフォルダをWPの設置先ディレクトリの下においたimgesという名前のフォルダにするなら、WPインストール先のwp-config.phpに下のコードを書き加えます。

wp-config.php

define( 'UPLOADS', 'uploads' );

注)require_once(ABSPATH . ‘wp-settings.php’);の前に記述してください。

WPコアファイル(本体)をウェブルートに置いている場合はhttp://yaruzou.net/images

フォルダがアップロード先になります。

一方、http://yaruzou.net/wpに設置していればhttp://yaruzou.net/wp/imagesがメディアアップロード先になります。

      • www root
        • wp
          • imges
          • wp-includes
          • wp-admin
          • wp-content
            • uploads
        • index.php

相対パスで../を指定すればWPのインストール先の上のディレクトリに移動できそうに思えますが、define( ‘UPLOADS’, ‘../’.’uploads’ );としてもhttps://yaruzou.net/wp/../uploadsとなるので意味がありません。

WPインストール先を隠したいのでなければこれでもいいですが、セキュリティを考えてWPのコアファイルの場所を知られたくない場合は他の方法を使う必要があります。

メディア投稿先の変更法2

WordPressの詳細設定options.phpから変更する方法です。

アップロード先の指定には相対パスが使えますが、そのままでは参照用URLのパスに../が入ってしまって機能しません。
そのため画像を参照するために、メディアのあるディレクトリへの絶対パスを入力する必要があります。

WordPressインストール先がウェブルートならアドレスバーにhttp://ドメイン名/wp-admin/options.php、そうでなければhttp://ドメイン名/WPのディレクトリ/wp-admin/options.phpと入力します。

このサイトでwpに設置してあれば下のように入力します。

https://yaruzou.net/wp/wp-admin/options.php

ここから詳細設定のupload_pathupload_url_pathを変更します。

upload_pathはwpのインストール先を基準に考えます。WPがwpというフォルダにインストールされている状態で下のツリーのようにルート直下に置きたい場合は../imagesとします。

    • www root
      • imges
      • wp
        • wp-includes
        • wp-admin
        • wp-content
          • uploads
      • index.php

upload_url_pathではURLを指定します。このサイトなら下のようになります。

upload_path   ../images
upload_url_path https://yaruzou.net/images

上でも触れたように、upload_url_pathは任意の名前に変更できるわけではなく、メディアディレクトリへの絶対パスを意味します。これを設定しないと、アップロードはできてもメディアライブラリから見えなくなります(このページを書こうと思ったのはここではまってる人を見たことがあるからです)。

したがって、upload_pathとのセットで入力する必要があります。

options.phpでパスとURLで利用するパスを設定すると、メディア設定の下にURL入力ボックスが表示されるようになります。

wp-media-setting-visible-directory

うまくいかない場合はメディア設定で設定しては、メディアライブラリから画像URLを確認するといいです。

メディア投稿先の変更法3

WP Original Media Pathプラグインを利用します。

このプラグインを利用すると、2の方法を使わなくてもupload_pathとupload_url_pathが表示されます。

設定メニュー「WP Original Media Path」を開くと、現在の設定が表示されます。2と同じように記述します。

wp-original-media-path-setting

アップロードするファイルの保存場所 ../images
ファイルへの完全な URL パス    https://yaruzou.net/images

画像URL変更

投稿記事の画像パスの変更

Search Regexを使って投稿記事の画像パスを一括置換します。

アドミンバーのツールからSearch Regexを起動します。

Search patternに既存のパスを、Replace patternには新しいメディアアップロードフォルダを入力します。

SourceがPost contentであることを確認してからsearchをします。検索結果に古いURLが表示されるかを確認してからReplaceで完了です。

画像のある記事で画像URLが新しいものになっているかを確認してください。

データベースの画像パス変更

Search & Replaceでデータベースの画像パスを変更します。

置換を実行する前に必ずCreate SQL Fileを実行して、Download SQL Fileでバックアップを保存してください。

search-and-replace-main

置換はSearch & Replaceタブから行います。

Search for:  wp-content/uploads/
Replace with: images/

Dry Runにチェックが入っていれば置換されないので、Select all tablesにチェックをした上でDo Search & Replaceを実行します。

実行結果の左上に表示されている「View details」で結果を確認して、うまく行っていればDry Runのチェックを外して実行します。

結果の確認

結果の確認はメディアライブラリの画像から行います。

メディアライブラリの画像のURLが新しいディレクトリのものになっていれば成功です。

これで終わりですが、テーマのカスタマイザーで設定したものはテーマ側で保存されていることがあるので、ページのソースからその確認もしてください。

もしヘッダー画像やファビコンで古いURLのものがあったら、カスタマイザーで再度登録しなおします。

後から変更するとうまくいったかの確認が手間なので、できればサイトを作成する前に設定しておきたいですね。

スポンサーリンク
336
336

フォローする