WordPress:画像アップロード時の自動生成をすべて停止する方法(Ver 5.3対応)

WordPress:画像アップロード時の自動生成をすべて停止する方法(Ver 5.3対応)

WordPressには画像をアップロードした際にサイズによって画像をリサイズして自動生成する機能が用意されており、昔からあるものとしては管理画面の「設定 > メディア」で設定できる3サイズが基本でしたが、現時点の最新であるVer 5.3系ではアップロードした画像サイズによっては7サイズを自動生成させるようになりました。
サイトによっては便利な機能ではありますが、勝手にリサイズしないでほしいとか不要サイズを生成してほしくないという場合もあるので、画像の自動生成をすべて停止する方法を紹介します。

自動生成されるサイズ

冒頭でアップロードした画像サイズによって7サイズが自動生成されるとありましたが、具体的には下記のようなサイズを基準にしたものが生成されます。

  • 150px(サムネイル)
  • 300px(中)
  • 1024px(大)
  • 768px
  • 1536px
  • 2048px
  • 2560px
  • ※サムネイル・中・大はデフォルトのメディア設定のサイズになります。
  • ※アップロードした画像サイズによっては、生成されないサイズがあります。

上記を踏まえ、例えば横長(3000×2000px)・縦長(2000×3000px)・正方形(3000×3000px)というサイズが大きい3種類の画像をアップロードした場合はそれぞれ下記のように自動生成され、自分では画像を1枚だけアップロードしたつもりでもuploads内には元画像を含めて8枚の画像が格納されます。

横長(3000×2000px)
  • 150x150px(サムネイル)
  • 300x200px(中)
  • 1024x683px(大)
  • 768x512px
  • 1536x1024px
  • 2048x1365px
  • 2560×1707px(scaled)
縦長(2000×3000px)
  • 150x150px(サムネイル)
  • 200x300px(中)
  • 1024x1536px(大)
  • 768x1152px
  • 1024x1536px
  • 1365x2048px
  • 1707×2560px(scaled)
正方形(3000×3000px)
  • 150x150px(サムネイル)
  • 300x300px(中)
  • 1024x1024px(大)
  • 768x768px
  • 1536x1536px
  • 2048x2048px
  • 2560×2560px(scaled)

functions.phpで自動生成をすべて停止する

先述したように現時点の最新バージョンであるVer 5.3系では、大きいサイズの画像をアップロードすると複数のサイズが自動生成されますが、サイトによってはこのサイズは使うことがないからなどの理由で自動生成は不要な場合もあると思います。
その場合はfunctions.phpに下記を記述することで画像の自動生成をすべて停止することができます。
intermediate_image_sizes_advancedでメディア設定で指定するのも含めて6サイズ分の自動生成を停止し、big_image_size_thresholdでスケーリングされた画像(画像名にscaledが付与されるもの)の自動生成を停止することができます。

functions.php

add_filter( 'intermediate_image_sizes_advanced', 'disable_image_sizes' );
function disable_image_sizes( $new_sizes ) {
  unset( $new_sizes['thumbnail'] );
  unset( $new_sizes['medium'] );
  unset( $new_sizes['large'] );
  unset( $new_sizes['medium_large'] );
  unset( $new_sizes['1536x1536'] );
  unset( $new_sizes['2048x2048'] );
  return $new_sizes;
}

add_filter( 'big_image_size_threshold', '__return_false' );

Close the search window,
please press close button or esc key.