WordPressプラグイン『Organize Media Folder』の使い方などをまとめた備忘録・紹介記事です。
画像ファイルをFTPでバックアップしておこうとしたところ、WordPressデフォルトのアップロード先ディレクトリ「wp-content/uploads」直下に10GB超・約36万個ものファイルが溜まっていたことが発覚!
その結果、フォルダの中身を閲覧するためにFTPやファイルマネージャーで開こうとするだけでものすごく時間が掛かったり、ファイル数が多すぎてバックアップに失敗する事態が発生!
これはアップロード設定「アップロードしたファイルを年月ベースのフォルダーに整理」をオフにしていたためなのですが、困りました。
そこで、アップロード済みのメディアファイルを指定したフォルダーなどに移動・整理することができ、コンテンツ(投稿記事)内のURLも同時に変換・置換してくれるプラグイン『Organize Media Folder』 を使ってみることにしました。
「FC2ブログ時代の分」+「WordPress移行時のミスで二重アップロード」+「移行後のアップロード分」+「自動生成のサムネイル・LiteSpeedCacheのバックアップ&WebPファイル」で、10GB以上のファイルが一箇所に溜まっていました。
プラグイン概要
『Organize Media Folder』は、メディアライブラリのファイル整理を助けてくれるプラグイン。作者は、Katsushi Kawamori氏。
主な機能は以下のようになっている。
- ファイルを指定したフォルダーに整理(移動)
- コンテンツ内(投稿・固定記事)のURLを整理時に置換
- プラグイン画面からフォルダーを作成可能
- ファイルリストを条件で絞り込んで一覧リスト表示
- リストアップしたファイルの一括整理
- アップロードするファイルの日時・フォルダを指定
「メディアライブラリのファイルを任意のフォルダにまとめて移動させることができる」&「その際に投稿記事内の画像リンクも新しいURLに置換してくれる」機能を主に利用した。
下準備
『Organize Media Folder』 を使う前に必要になるかもしれない下準備について。
- WordPressのバックアップを取っておく
- 「max_excution_time」と「memory_limit」の値を大きくする
- メディアライブラリに未登録のファイルを登録する
- LiteSpeedCacheの最適化データを削除する
- アイキャッチの再登録(一括処理できるプラグインなど)
WordPressのバックアップ
WordPressのデータベースやファイルをいじることになるため、問題が発生した際に復旧しやすいようバックアップを取っておくと安心。
max_excution_timeとmemory_limit
ファイルやフォルダが多い場合にタイムアウトによるプロセス中断やメモリー不足を防ぐために必要な設定。処理するファイルの規模やサーバーの性能によっては不要・無意味かもしれない。
「max_excution_time」はスクリプト自身の実行時間の最大値、「memory_limit」はWordPressで利用できるメモリーの上限。
両設定はドメインのルートディレクトリにある「php.ini」などで変更可能。
php.iniの場合
memory_limit = 2048M
max_execution_time = 1800
サーバー管理ソフトに『cPanel』を採用しているレンタルサーバーでなら、「MultiPHP INI Editor」を使ってphp.iniを簡単に編集/設定できる。
wp-config.phpの場合
/** WordPressのメモリ上限 */
define('WP_MEMORY_LIMIT', '2048M');
define('WP_MAX_MEMORY_LIMIT', '2048M');
/** スクリプト実行可能時間の最大値 */
set_time_limit(1800);
「php.ini」や「wp-config」で変更した上記のメモリ上限・タイムアウト最大値の設定は、ファイル整理が終わったら元に戻すのも忘れないようにしたいです。
メディアライブラリに登録
『Organize Media Folder』はメディアライブラリに表示・登録されているファイルでないと扱えないようだった。
FTPからアップロードしたファイルで登録されていない場合は、一括で登録できるプラグインを利用すると良いかもしれない。
自分の場合は一部のファイルがメディアライブラリに登録されていなかったので、『Organize Media Folder』と同じ作者の『Bulk Media Register』を利用した。
LSCの最適化データを削除
これは、LiteSpeedCacheプラグインの画像の最適化ツール(最適化データ)を利用していて、元画像のバックアップファイルと変換したWebP画像が大量にある場合に必要かもしれない。
作成されたバックアップとWebPでファイル数が2~3倍になるため、処理する画像が多い場合は削除しておいた方が無難かもしれない(再生成の手間・時間が発生するが)。
LiteSpeedCacheプラグインの場合は、「管理画面」→「画像の最適化」→「最適化ツール」内の「すべての最適化データを破棄する」で最適化ファイルをすべて削除できる。
アイキャッチの再登録
WordPressで作成した投稿記事のアイキャッチ画像は、『Organize Media Folder』で整理・移動しても正常に更新されていた。
しかし、 WordPress移行前の旧記事のアイキャッチ画像(FTPでアップロード→『Bulk Media Register』でメディアライブラリに登録)は、投稿記事に正常に登録されていなかった(空の状態になった)。
少し特殊な例だったのかもしれないが、場合によってはアイキャッチの再登録が必要ぽい。記事の数が数百以上とかになると手動でやるのは無理なので、こちらもプラグインで対処した。
投稿記事の先頭にある画像をアイキャッチ画像として一括で自動生成・設定してくれる『XO Featured Image Tools』を利用。アイキャッチが設定されていない「投稿・固定ページ」のみ処理してくれるので便利。
使い方(ファイル整理)
インストール
通常通り「管理画面」→「プラグイン」→「新規追加」→「Organize Media Folder」で検索、インストール、有効化でOK!
初期化について
プラグイン画面へのアクセスは「管理画面」→「メディア」→「フォルダー管理」。
まず最初にフォルダ構造などを把握・確認するための「初期化」が必要になる。
この「初期化」は『Organize Media Folder』を用いずに、FTPやサーバー管理ソフトのファイルマネージャーでフォルダ構造を変更した場合にも、その都度必要とのこと。
500エラー
タイムアウトすると「500 Internal Sever Error」が発生するようだった。ファイル数が多い場合は「max_excution_time」を長めに設定しておくといいかも。
初期化完了
初期化が完了すると「フォルダ構造とタクソノミーが更新されました。」のメッセージが表示され、画面下にファイルリストが表示される。
基本設定
初期化が終わると「設定」メニューに「除外フォルダー、アップロードフォルダー、管理バーに表示するアップロードフォルダー、日付、EXIFキャプション、アドオン、ログ」が追加される。
アップロード済みのメディアファイルを整理する目的で使用する場合には、「フォルダーを作成」&「日付」あたりの設定を見ておけば大体OKだと思う。
設定を変更したら「変更を保存ボタン」を押す。
ファイルを整理
いよいよ準備が整ったということで、ファイルの整理を開始!
一括操作する場合は大体以下のような流れになる。
- プラグイン画面上部のプルダウンメニューや検索ボックスで一覧表示するファイルを絞り込む。種類は「ユーザー/ファイルの種類/年月/フォルダー/任意のキーワード」。
- 「フォルダー一括選択」で移動先のフォルダーを選んで変更ボタンを押すと、リストアップしたファイル全体の移動先が一括指定される。
- 移動させるファイルの横にあるチェックボックスにチェックを入れる。全体を選択する場合は最上部のボックス。
- 「更新」ボタンで処理が実行される。
- 処理が完了すると画面が再読込されて結果ログが表示される
最初はファイル1つだけで動作と結果を確認するのが無難かと思います。
データベースが壊れると復旧が面倒くさい、というか怖いので慎重に!
一括処理数の目安
任意の数に設定できる「ページに表示する項目数」の数字を大きくすれば、一度に大量のファイルを整理(移動)させることができる。
ただし、数が多いと処理に時間が掛かる&サーバーへの負荷も大きいようだった。「ファイルの移動+データベースの書き換え」となるので、あまり多すぎるとフリーズしそうな気配!
50KB~300KB程度の画像ファイル×100枚を別のフォルダに移す一括処理に掛かる時間は、自分の環境だと約30秒。200枚だと約1分、300枚だと約1分半といった具合だった。
200枚以上の画像ファイルを一括処理しているときには、経過時間1分超あたりからプラグインの画面が一時的に空白の状態になることがあった(100%ではないけど)。
ブラウザタブのサイトアイコンが読込中を示す”くるくる”表示のまま、10分くらい画面に変化がない状態に陥ったりもしたが、結果的にはフリーズせず処理は成功していた。
ファイルの容量、付随するサムネイルの数・容量、サーバーの性能など環境次第なんだろうけど、1000枚以上を一括処理したりするのはちょっと不安。100枚程度なら特に問題無いといったところ。
それまで映っていた画面が消えて空白表示になると焦ります。
プラグイン画面とは別のタブに表示している管理画面ページなどにアクセスすると、表示が復活したりもしたので、Chrome側の問題・仕様な可能性もありそうです。
整理完了
ファイルの整理(移動)が完了すると、プラグイン画面が再読み込みされて、ページ上部に結果ログがずらっと表示される。
例えば画像ファイルの場合だと、本体ファイルに加えて、自動生成されるサムネイルも選択したフォルダに移される。そして、投稿・固定ページの画像URL、アイキャッチも新しいURLに置換される。
投稿記事のURLとアイキャッチも同時に置換してくれるのは助かります。
ファイル整理の基本的な使い方は以上となります、お疲れさまでした!
あとがき
『Organize Media Folder』は、メディアライブラリの整理にすごく便利なプラグインでした。ありがたい!
10GB超・36万個の画像ファイルに埋め尽くされていたuploadsフォルダ直下は、計150個以下のファイル・フォルダに整理されてすっきりしました。散らかっていたフォルダが片付いて、なんか気持ち良かったです😊
ちなみに、WordPressや他プラグインで生成されたサムネイル・バックアップなどを除くと、画像ファイル本体の量は約14,000個でした。
ファイルアップロードの設定「アップロードしたファイルを年月ベースのフォルダーに整理」をONにするかOFFにするかは、ケースバイケースで一長一短あるようです。当サイトでは今後ONにしておくつもりです。
『Organize Media Folder』はファイル整理で便利ですが、その他にもアップロードファイルの日時・保存先を指定する機能もあるため、機会があれば使ってみるのも良いのではないでしょうか。