テーマ変更や画像サイズの見直しをしたあと、アイキャッチや記事内画像の表示が崩れて困ったことはありませんか?
そんなときに必要となる作業がサムネイルの再生成です。
定番とされているのはWordPressの管理画面でプラグインを使って処理する方法です。
しかし画像点数が多いサイトですと重くなりがち。

そこでおすすめなのが、ターミナルからWP-CLIを使う方法です
特にKUSANAGI環境では、追加準備なしでWP-CLIを利用できます。
本記事では、サムネイル再生成の基本コマンドと、よく使うオプション、実行前に知っておきたい注意点をまとめます。
WP-CLIでサムネイルを高速再生成するときのおすすめコマンド
既にWP-CLIの使い方を知っている方に向けて、ざっくり結論を記してしまいます。
サムネイル高速再生成におけるおすすめコマンドはこちらです。
cd /home/kusanagi/(プロファイル名)/DocumentRoot wp media regenerate --only-missing --yes
wp media regenerateは、WordPressに登録されている画像からサムネイルを再生成するコマンドです。
–only-missing を付けると、すでに存在しているサムネイルを作り直さず、不足分だけを生成できます。

つまり、ムダがないってこと
さらに –yes を付けると、途中の確認を省略できます。
画質の見直しなどで既存サムネイルをすべて作り直したい場合を除けば、通常運用ではこの形がもっとも扱いやすいと思います。
WP-CLIとは?
WP-CLIは、ざっくり言うと、超便利なコマンドラインツールです。
詳しくはこちらに記しています。
ぜひ、あわせてお読みください。
プラグインよりWP-CLIの方が快適な理由
サムネイル再生成といえば、定番プラグインとして「Regenerate Thumbnails」がよく知られています。
WordPress管理画面から操作できるため直観的でわかりやすいです。
ただし画像点数が多いサイトでは重くなりがち。
処理中は画面を開いたままにしておく必要もあります。
ハラハラしたりイライラしたりで、ちょっと落ち着かないかもしれません。
その点、

WP-CLIは気持ち良く作業できます
黒い画面(ターミナル)での操作に慣れていないと抵抗あるかもですが。
HTTPリクエストの往復や管理画面操作のオーバーヘッドがないぶん軽快です。
作業中にタブや接続状態を気にし続けなくてよく、運用上の事故を減らせるのも利点です。
しかも、なんと、

Regenerate Thumbnailsが自らよりもWP-CLIでの作業を推奨しています!
以下は、Regenerate Thumbnailsプラグインページからの引用です。
代替案
WP-CLIもしサーバーのコマンドラインにアクセスできるなら、このプラグインの代わりに、大量のサムネイル処理のために高速 (HTTPリクエストのオーバーヘッドが無い) かつ スクリーン の中で動作できる WP-CLI の使用を強く推奨します。詳しくは media regenerate コマンド のドキュメントを参照してください。
もちろん、少数の画像だけを扱うならGUIでも十分です。
ただ、画像数が多いサイトやテーマ変更後にまとめて整えたい場面では、WP-CLIでの作業をおすすめします。
KUSANAGIならWP-CLIをすぐに使える
KUSANAGI環境の大きな利点のひとつが、WP-CLIを前提にした運用がしやすいことです。
追加で複雑な準備をしなくても、そのままコマンドを実行できます。
基本的には、次のようにDocumentRootへ移動してから操作します。
cd /home/kusanagi/(プロファイル名)/DocumentRoot
この場所でwpコマンドを実行すれば、対象のWordPressに対して各種操作が可能です。
サムネイル再生成に限りません。
キャッシュ削除やデータベース最適化など幅広く操作でき、WordPress運用が見違えるほど楽になります。

注意点を2つあげておきます
注意点その1。
wpコマンドが動かないときはカレントディレクトリを確認すること。
かなりの確率でDocumentRoot以外の場所にいると思います。

私のことなんだけどね
注意点その2。
複数のWordPress環境を同じサーバーで扱っている場合、どのプロファイルのDocumentRootにいるかを必ず確認してください。
間違えて意図しないサイトに対して処理してしまうおそれがあります。

サムネイル再生成に限れば、各サイトで使うアイキャッチのサイズを一律で決めておくと安心です
wp media image-sizeでサムネイルサイズ一覧を確認する
まず再生成の前にテーマが登録しているサムネイルのサイズを確認してみましょう。
次のコマンドを打ち込みます。
wp media image-size
私の環境ですと、次のようにリストが表示されます。
+————————-+——-+——–+——+——-+
| name | width | height | crop | ratio |
+————————-+——-+——–+——+——-+
| full | | | N/A | N/A |
| 2048×2048 | 2048 | 2048 | soft | N/A |
| 1536×1536 | 1536 | 1536 | soft | N/A |
| large | 800 | 0 | soft | N/A |
| size_560_blogcar-ratina | 560 | 0 | soft | N/A |
| medium | 400 | 0 | soft | N/A |
| size_280_blogcard | 280 | 0 | soft | N/A |
| thumbnail | 200 | 0 | soft | N/A |
| size_128_square | 128 | 0 | soft | N/A |
| size_80_square | 80 | 80 | hard | 1:1 |
+————————-+——-+——–+——+——-+

表の見方はおおむね次の通りです
- width:横幅
- height:高さ
- crop:トリミングの有無や方式
- ratio:画像比率の目安
たとえば widthが300、heightが0の場合。
横幅300を基準にして高さは元画像の比率に応じて決まります。
width と height が両方指定され、さらに crop が有効になっている場合。
必要に応じてトリミングしながら指定サイズへ合わせる形となります。
再生成コマンドだけ先に打つこともできますが、
私としては一覧を確認してから作業を進めるのをおすすめします
使わないサイズや似たようなサイズが残っていると、ディスクを圧迫しますし再生成の手間がかかります。
先に整理しておくと、そのぶんだけ保守運用が楽になります。
サムネイルサイズの追加方法
wp media image-sizeはあくまでも「表示する」だけです。

サムネイルサイズの登録はWordPress側のPHPコードで行います
例えばリスト中のsize_280_blogcardは私が新しく追加したもの。
functions.phpなどに次のコードを記せば、生成するサイズを追加できます。
add_image_size('size_280_blogcard', 360, 0, false);
逆に登録を削除するとき。
WordPress標準設定(large、medium、thumbnail)なら、管理画面左サイドバーの「メディア設定」を開いて、不要なサイズの幅と高さを「0」にしてください。
その他なら、こちらをfunctions.phpなどにコピペして、削除したいサイズに書き換えてください。
function remove_thumbnail_sizes() {
remove_image_size( '1536x1536' );
remove_image_size( '2048x2048' );
remove_image_size( 'thumb150' );
remove_image_size( 'thumb100' );
}
add_action('init', 'remove_thumbnail_sizes');
wp media regenerateでサムネイルを再生成する
wp media regenerate
WP-CLIでサムネイルの再生成をするコマンドはこちらです。
wp media regenerate
このまま打っても作業できます。
しかし実戦上は作業目的に合わせてオプションを追加するのが通常です。
–only-missing
wp media regenerate --only-missing
ざっくり言うと、

既存のサムネイルの「再生成」を省略して、足りないものだけを「生成」するオプションです
たとえば先述サムネイルサイズに「150×150」を加えたとします。
「150×150」のサイズ以外が既に作ってあるなら、画質などの問題がない限り作り直すのはムダです。
そんなとき–only-missingオプションを入れると、「150×150」だけを生成するので作業時間の短縮を図れます。
–skip-delete
wp media regenerate --skip-delete
ざっくり言うと、

登録してるサイズ以外のサムネイルを残すためのオプションです
デフォルトでは登録されていないサムネイルを削除します。
しかし過去記事のどこかで古いサムネイルを参照していたり想定外の場所で使われていたりすると、アイキャッチが飛んだり画像が崩れたりすることがあります。
特にテーマ移行直後など、旧テーマ側のサイズがまだ必要になる可能性がある場合は–skip-deleteを付けておくと安全です。
あるいは実行前にファイルとデータベースのバックアップを取っておきましょう。
–yes
wp media regenerate --yes
ざっくり言うと、

途中で確認を飛ばしたいときのオプションです
自分で内容を理解したうえで実行するなら、付けておくとテンポよく進められます。
おすすめは –only-missing –yes
おすすめは次のオプションを組み合わせた形です。
wp media regenerate –only-missing –yes
これなら既存の正常なサムネイルを無駄に作り直さず、不足分だけを補えます。
処理量を抑えやすいので、大規模サイトでも比較的扱いやすいです。
ただし、古いサイズを残したい場合や、確認を挟みながら進めたい場合は別の選択肢もあります。
たとえば、

私は –yesを入れてません
私の環境ですと、確認を求められるのは最初の1回だけなのが通常。
–yesと打つ時間と確認する時間と大して変わらない気がするためです。
一方で「古いサイズを消すのが不安」という場合は–skip-delete を検討しましょう。
安全を重視するなら、問題がないことを確認してからサムネイルを整理するのも一手です。
再生成前に知っておきたい注意点
サムネイルを再生成する前に知っておきたい注意点もあります。
特に大事なのは、

元画像が残っていることです!
サムネイル再生成は、元画像をもとに各サイズを作り直す処理です。
そのため、元画像が存在しないのにサムネイルだけ残っているような状態だと、再生成時に問題が起きることがあります。
たとえば、昔の運用で元画像を消してしまい、サムネイルだけを使い続けていた場合。
この状態で整理や再生成を進めると、参照していた画像が消えたり、アイキャッチがリンク切れになったりする可能性があります。
もっとも画像が吹っ飛んでも対処できます。
元の画像があるなら、新しいテーマに元のテーマで使ってたサムネイルサイズを登録して作り直せばOK。
それで再びリンクされます。
……元の画像があるならですけど。
元の画像がないのにサムネイルだけが残っている場合、そのサムネイルは消えてしまいます。
このことによってトラブルが生じることもあります。
例えば元画像なしのサムネイルを記事のアイキャッチとして設定していた場合、リンク切れで吹っ飛んでしまいます。
そしてこの場合、二度と戻せません。

私のことなんだけどね
初心者時代からの負の遺産を下手に抱え込んだおかげでこうなりました。
私みたいな事故を防ぐためには、以下を心がけましょう。
- 元画像は残す
- バックアップをとる
- skip-deleteオプションをつける
まとめ
黒い画面(ターミナル)を操作することに不安をおぼえる方は多いでしょう。
きっとプラグインを入れてWordPress上でGUIで操作する方が抵抗なく作業できるはずです。
しかしWP-CLIだとぶっちぎりで速いです。
トータルの快適感はWP-CLIが圧倒的に優ると思います。
もしWP-CLIを使ったことがないなら、ぜひチャレンジしてみてください。

きっとアイキャッチの作り直しもテーマ変更も怖くなくなります!
私はConoHa以外を勧めない。
2016年からずっとConoHaを使い倒してきました。知人に「一番いいサーバーは?」と聞かれたら、迷わずここを教えます。
レンタルサーバーナンバーワンを誇る高速環境であることはもちろん。私が「黒い画面って何?」というド素人からサイト制作のプロになれたのは、傍らにずっとこのはちゃんがいてくれたから。
私がConoHaを使い続ける、嘘偽りない理由です。
※ConoHaに初めて入会の方限定。
本CTAの画像もしくはボタンを押してWINGパック12か月以上を契約すると、最大5000円割引してもらえます。