以前に管理画面上で画像の自動生成を止める方法や768pxの画像の自動生成を止める方法を記事で投稿しましたが、現在のWordPressは最大で7種類の画像を自動生成するようです。
ただ、案件の仕様などによっては不要な画像サイズを自動生成させたくない場合もあるので、画像の自動生成を止める方法を試してみます。
動作確認
まずは設定前の動作を試してみます。
サイズが3000px × 3000pxのneko.jpgという画像を管理画面からアップロードすると、以下の画像が生成されました。
- neko.jpg (原寸大)
- neko-150×150.jpg (150px × 150px)
- neko-300×300.jpg (300px × 300px)
- neko-768×768.jpg (768px × 768px)
- neko-1024×1024.jpg (1024px × 1024px)
- neko-1536×1536.jpg (1536px × 1536px)
- neko-2048×2048.jpg (2048px × 2048px)
- neko-scaled.jpg (2560px × 2560px)
neko-150×150.jpgがサムネイル、neko-300×300.jpgが中サイズ、neko-1024×1024.jpgが大サイズの画像です。
150px,300px,1024pxはデフォルト値なので、管理画面のメディア設定やfunctions.phpから変更している場合は変わります。
neko-scaled.jpgは2560px以上の画像をアップロードした場合に自動生成され、the_post_thumbnail()でfullを指定した場合にアップした画像ではなくこちらの画像が使用されます。
設定方法
functions.phpに下記を追加します。
// 不要な画像サイズの自動生成を停止 function disable_image_autogeneration($sizes) { // unset($sizes['thumbnail']); // サムネイル // unset($sizes['medium']); // 中サイズ // unset($sizes['large']); // 大サイズ unset($sizes['medium_large']); // 768px unset($sizes['1536x1536']); // 1536px unset($sizes['2048x2048']); // 2048px return $sizes; } add_filter('intermediate_image_sizes_advanced', 'disable_image_autogeneration'); add_filter('big_image_size_threshold', '__return_false'); // 2560px(scaled)の自動生成を停止
12行目が2560pxの画像の自動生成停止、2〜11行目がそれ以外の画像の自動生成停止になります。
上記例の場合768px,1536px,2048px,2560pxの自動生成を停止しているので、サムネイル,中サイズ,大サイズの自動生成を停止したい場合は3〜5行目のコメントアウトを外してください。
コメントが承認されるまで時間がかかります。