スポンサーリンク

メディアのアップロード用サブディレクトリを作成

ファイルのMIMEタイプでサブフォルダーを作成してアップロード先を切り替えようと考えました。これはdrupalでそうしていたためです。
しかし、Wordpressではそう簡単ではなさそうでしたが、ほとんど画像なのでマニュアルでアップロード場所を切り替えればよいだろうと安易に考えていました。
画像のアップロード用途がほとんどだったので画像用のimagesフォルダ(wp-content/uploads/images)をアップロードフォルダーに設定しておきました。
使用したプラグインは「Organize Media Library by Folders」と「Extend Media Upload」です。
前者はフォルダの作成削除ができ、後者はアップロード先のフォルダーを変更できます。
メディアの機能拡張のような位置づけのプラグインなので普通に使えます。
FTPなどで一括でファイルをアップロードした場合に「Media Sync」プラグインでスキャンしてメディアライブラリに登録していました。動作が不安定だったので「 Media from FTP 」に変更しました。

しかし、アイキャッチ画像の一括編集やデフォルト設定のために導入した「Easy Featured Images」プラグインで画像をアップロードすると imagesフォルダ(wp-content/uploads/images) にアップロードされず、メディアフォルダ (wp-content/uploads )にアップロードされました。また、記事編集でビジュアルエディターでの画像アップロードをすると同じ結果でした。
これではアップロード方法によってアップロードされる場所が変わってしまうのであとあと面倒です。

プラグインを使った画像の移動とURLの更新

「Organize Media Library by Folders」 プラグインで移動先を一括編集可能です。年月からimagesフォルダへの移動に使用してうまくいきました。しかし、諸事情で前回とはWebルートディレクトリを変更したのですが、データベースに残っている移動先に選択できるパスは変更前のパスしかないため移動先が指定できませんでした。おそらく、新しいフォルダの作成をこのプラグインで行わなかったのが影響していると思います。

メディア関連の不要なプラグインを一旦削除

別の方法でフォルダの移動とURL更新を行うため、メディア関連の不要になったプラグインを削除しました。削除したプラグインは以下になります。

  • Organize Media Library by Folders
  • Extend Media Upload
  • Easy FancyBox

Easy FancyBoxを削除した理由はまだ機能させていなかったこととこのあとの作業で、メディア設定のページでファイルアップロードの項目が表示されなかったためです。

メディアの移動とURLの更新

メディアファイルの移動

wp-content/uploadsからmediaにすべてのファイルをコピーしました。
コピーはリモートログインしてコピーコマンドを実行しただけです。
当然ですが、この作業をしないとメディアライブラリの編集で画像が表示されません。

サブフォルダになっていた画像や動画などのメディアファイルはサブフォルダを作成せずにフラットになるようにしました。

upload_pathとupload_url_pathを設定

options.phpにアクセスするとWordpressのすべてのオプション設定を変更可能になります。
この中から、upload_pathとupload_url_pathを設定して、デフォルトのwp-content/uploadsではなくドキュメントルート直下のmediaフォルダにメディアをアップロードするように設定しました。

upload_pathmedia
upload_url_path/media

この作業により、メディア設定のページにファイルアップロードの項目が表示されるようになります。

画像URLの変更

Search Regexプラグインを使用してデータベース内のwp_postとwp_metapostにある画像URLを変更します。wp_postが記事のテーブルですのでこの中のメディアライブラリのパスに一致するものは今回の置換対象のメディアファイルのパスということになります。一方、wp_metapostの方はアイキャッチ画像やサムネイル画像に関連したURLです。wp_metapostのURLはupload_pathからの相対パスで保存されているようですので注意が必要です。

例)/wp-content/uploads/images/test.pngの場合はimages/test.pngです。

post contentに対してURL置換

置換後の新しいパスにはURL相対パスを使用するように置換しました。

https://phoenixknight.jp/wp_content/uploads/images/media
http://phoenixknight.jp/wp_content/uploads/images /media
/wp_content/uploads/images /media
http://phoenixknight.jp/wp_content/uploads/videos/media
/wp_content/uploads/videos /media
/wp_content/uploads/documents/media

最初は相対パスの/wp-content/uploadsで検索するとどういったパスがあるのか把握しやすいです。置換はいきなりするのではなく最初に検索してみてよさそうなら置換&保存を実行してください。

post meta valueに対してURL置換

Quick Featured Imagesプラグインでアップロードした画像はupload_path直下にアップロードされていたため置換は不要でした。ここではサブフォルダにアップロードしたファイルが置換対象です。

images/空白
videos/空白

サムネイルの再構築

Regenerate Thumbnailsプラグインを使用してサムネイルを再構築しました。これをしないと、メディア一覧でURL置換した画像のサムネイルが表示されませんでした。

スポンサーリンク

この記事が気に入ったら
フォローしよう

最新情報をお届けします

Twitterでフォローしよう

おすすめの記事