
WordPressは初期設定のままだと、画像を一つアップロードするといくつものサイズの画像が自動生成されるようになっています。
自動生成される画像が必要であれば、この機能はとても便利なものです。
しかしその画像を使わないのであれば、不要な画像がどんどんたまってしまって管理しづらくなってしまいます。
そんな不要な画像を作らず、必要なサイズの画像だけを生成するようにする、メディア設定のメモです。
自動生成される画像サイズ
WordPressの初期設定では、アップロードした画像が以下の画像サイズより大きい場合に、自動生成されるようになっています。
| full フルサイズ | オリジナルの画像サイズ |
| thumbnail サムネイル | 150 × 150 |
| medium 中サイズ | 300 × 300 |
| large 大サイズ | 1024 × 1024 |
| medium_large ミディアムラージ | 768 × 0 |
| 名称なし (WordPress 5.3から生成) | 1536 × 1536 |
| 名称なし (WordPress 5.3から生成) | 2048 × 2048 |
| image-scaled 2561px以上の画像の場合 | 2560px |
テーマで登録されている画像サイズの情報は、wp_get_registered_image_subsizes() で確認できます。
アップロード画像のサイズが大きければ大きいほど生成される画像は多くなります。1枚の画像をアップロードすると最大で8枚の画像が追加されます。以下は、2561px以上の画像をアップロードした際に自動生成された画像一覧です。

メディアから画像を削除すれば、自動生成された画像も一緒に削除されます。
自動生成される画像が必要か
もちろん生成されるサイズの画像を使うなら、わざわざ自動生成を停止させる必要はありません。またWordPressでは、これらのサイズがあることで、画像のレスポンシブ対応も自動で行います。
このように自動的に画像サイズを生成してくれるのは便利な機能です。
しかしこれだけのサイズ種類が必要かどうかも要検討です。画像が増えるほど管理は大変になり、サーバー全体のパフォーマンスに影響を与える可能性があります。後から不要なサイズの画像を削除するのも手間です。
やはり不要なものは初めから作らないように設定しておく方が良いでしょう。サイトに不要な画像サイズがあれば、あらかじめ自動生成を停止させておいた方が後々の手間を減らせます。
元の画像サイズが大きいほどたくさんの画像が自動生成されるので、元画像のサイズもあまり大きくなりすぎないように注意したいところです。
WordPressのメディア設定
管理画面メニューの【設定 > メディア】で自動生成される画像のサイズを設定できます。

ここでサイトに必要な画像サイズを設定していきましょう。
画像サイズ設定
サイトのデザインに合わせて任意のサイズに変更できます。
初期では「サムネイル(150px)・中サイズ(300px)・大サイズ(1024px)」が設定されています。入力に(px)は不要です。
※使用するテーマによってはサイトデザインに合わせて変更していることがあるので、デフォルトのサイズが異なることがあります。

ここに設定されている画像サイズは投稿エディタで指定できるようになっています。

選択するときに「フルサイズ」というものも選択肢にありますが、これは画像の元のサイズのことです。また2560px以上の画像サイズの場合は「〇〇-scaled」の画像が適用されるようになっています。
画像サイズの作られ方
サイズ設定で入力した幅や高さの数字は「最大寸法」で、画像の縦横比率を保って長い方に合わせてサイズ変換されます。
例えば「280 × 192」の画像なら長い方が「150」になって、短い方は元の比率に合わせて縮小します。

「縮小してリサイズする」ので、元の画像サイズが入力されているサイズより小さい場合は生成されません。例えば上記の画像にある「280 × 192」の画像の場合、幅・高さを300に設定した中サイズやそれ以上の大サイズは作られません。
サムネイルはトリミングされるのがデフォルト
【サムネイルのサイズ】には「サムネイルを実寸法にトリミングする」というチェックボックスがあります。

これをチェックしている場合、サムネイルサイズの場合は比率に関係なく入力されているサイズにトリミングされて生成します。

トリミングをせず、縦横比を維持したまま設定したサイズが生成されるようにしたい場合は、こちらのチェックを外します。
管理画面で設定できる自動画像サイズ生成の停止
メディア設定のサイズを「0」にする
自動生成したくないサイズは幅も高さも「0」にして保存すればつくられないようになります。

サイトで使用する画像サイズが決まっていて、初期値とは別のサイズにしたい場合はこちらの数値を変更して使用するものが生成されるように変更しましょう。
768px の画像サイズ生成をしないようにする
メディア設定画面には表示されない画像サイズがあります。この画像サイズも不要であれば生成されないようにしておきたいものです。
この設定は「/wp-admin/options.php」ページで変更します。管理画面からのリンクはないのでURLで直接アクセスしてください
options.php にアクセスすると、「すべての設定」という画面が表示されます。
このページの「medium_large_size_w」を検索。ここに数字が入っていると、そのサイズの画像が自動生成されます。不要な場合は「0」にして、一番下の「変更を保存」ボタンをクリック。

設定後は生成されないか、大きめの画像を登録して確認してみてください。
メディア設定のサイズと options.php の「medium_large_size_w」を0にしておけば、「サムネイル・中・大・medium_large_size」サイズは自動生成されなくなります。
全てまとめて停止、管理するならfunction.phpで設定
アップロードする画像を1536px未満にする、という制約がもてるなら先述した設定だけでも十分ですが、それ以上のサイズを登録する可能性がある場合は fucntions.php を使用して設定します。
fucntions.php での設定なら管理画面上で設定する内容も一括で変更できるので、大きい画像サイズの自動生成変更が必要ならこちらで一括設定するのがおすすめです。
add_image_size() で設定
使用しないサイズの画像を add_image_size() を使って「0」を設定することで自動生成させないようにできます。
add_image_size('thumbnail', 0, 0);
add_image_size('medium', 0, 0);
add_image_size('medium_large', 0, 0);
add_image_size('large', 0, 0);
add_image_size('1536x1536', 0, 0);
add_image_size('2048x2048', 0, 0);remove_image_size() や unset() で設定
特定の画像サイズを指定して生成しないようにするには remove_image_size() や unset() を使って登録名を指定します。
function remove_add_image_size() {
remove_image_size('medium');
}
add_filter('init', 'remove_add_image_size');以下のコードは unset() を使ってWordPressでデフォルトに設定されている画像サイズの自動生成を停止する記述になります。
function remove_add_image_size($sizes) {
unset($sizes['thumbnail']);
unset($sizes['medium']);
unset($sizes['medium_large']);
unset($sizes['large']);
unset($sizes['1536x1536']);
unset($sizes['2048x2048']);
return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'remove_add_image_size');テーマによってはこれら以外にも画像サイズを追加していることがあります。この場合も unset($sizes['画像サイズの登録名']); を記述すれば登録されているサイズの生成を停止できます。それらはテーマに必要な画像サイズだとは思うので、削除しても表示に問題がないかはよく確認してみてください。
一括でほぼ全てのサイズ生成を停止
その他の画像サイズを一括で停止したい場合はこちらのコードを使用します。
function remove_add_image_size($sizes) {
$sizes = array();
return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'remove_add_image_size');サイズ情報が格納されている $sizes を空にすることで自動生成されないようになります。
scaled 画像の自動生成停止
2561px以上の画像の場合に生成される「〇〇-scaled」という画像サイズの生成停止は以下のコードを記述する必要があります。
add_filter('big_image_size_threshold', '__return_false');すでにアップロードしている画像がある場合
もし自動生成停止の設定をする前に画像をアップロードしている場合、その画像には適用されません。アップロードした画像も含めてリサイズしたい場合は、すでに生成されているサムネイル画像を再生成するプラグインを使用するのがおすすめです。
このプラグインを使うとボタン一つですでに登録されているメディア画像を再生成してくれます。
「Regenerate Thumbnails For All ○○ Attachments」(○○は再生成できる数字が入る)をクリックすれば全ての画像のサムネイルが再生成されます。
オリジナルテーマではないテーマや他の人が作ったテーマなどの場合、自分が認知していないカスタマイズした画像サイズがあるかもしれません。再生成されると元に戻せないので要確認です。念の為バックアップをとっておくのがおすすめです。
不要であることが分かった上で、削除やコメントアウト、もしくは必要なサイズに上書き設定しましょう。数字部分を書き換えればOKです。