【WordPress】WP-CLI で一括でサムネイル画像を再生成できるのだった…

WordPress でテーマを変更したり、また「設定>メディア」で各種画像サイズの設定を変更した場合、その後アップロードする画像は当然のとこながら、新たなサイズでサムネイル画像などが生成されるわけだけど、すでにアップロードした画像は古いサイズのまま。

ってことで、サムネイル画像を再生成する必要があるんだけど、その際便利なプラグインがこちらの Regenerate Thumbnails。

まあこれを使えばいいんだけど、この Regenerate Thumbnails の管理ページ(「ツール>Regenerate Thumbnails」)に

Alternatives
If you have command-line access to your site’s server, consider using WP-CLI instead of this tool. It has a built-in regenerate command that works similarly to this tool but should be significantly faster since it has the advantage of being a command-line tool.

って書いてあった。 WP-CLI (WordPress を管理するためのコマンドラインインターフェース)でサムネイルの再生成ができるとのこと。以前から目にしていたと思うけど… 今回ちょっと試してみた。

公式の解説がこちら

これによると基本は

$ wp media regenerate

で、オプションとしては(ちょっとつたないけど、ざっと訳してみると)

[<attachment-id>…]
1つ以上の、再生成するメディアID

[–image_size=<image_size>]
再生成する画像サイズの名前。指定した画像サイズのサムネイルのみ再生成され、ほかのサイズのサムネイルは生成されない。

[–skip-delete]
元のサムネイル画像を削除しない。もし、サムネイル画像が、あなたの管理下にないソースからリンクされている場合はそのまま残しておくのがよいでしょう。デフォルトは false

[–only-missing]
画像サイズがない画像のみサムネイルを生成する。

[–yes]
確認メッセージに yes で答える。確認は引数として渡された ID が存在しないときのみ表示される(Confirmation only shows when no IDs passed as arguments. )

最後訳があやしいけど。。

ってことで、上記公式ページの例によると

$ wp media regenerate 123 124 125

とすれば、lD が123と124と125の画像のみが再生成される。

まあ普通に全体、再生成する場合は

$ wp media regenerate --yes --only-missing --skip-delete
$ wp media regenerate --yes --only-missing --skip-delete

とすればいいかな。最後の –skip-delete 無しだと、不要になったサイズは削除されるってことのようだ。

あと上記公式ページの例で便利だなと思ったのは

$ seq 1000 2000 | xargs wp media regenerate

こうすると、IDが1000から2000の間の画像が再生成される。とりあえず最近アップロードした画像のみ再生成したい場合はこうすればいいわけだ。※ちなみに上記いずれも ID が大きいほうから再生成されるようだ。

ってことで、WP-CLIが使える環境であれば、プラグイン使うより楽かなと。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です