【WordPress】画像リサイズ/サムネイルの自動生成を停止する

  • WordPress

WordPress では画像をアップロードすると、自動的に一定の大きさにリサイズした画像をいくつか自動生成しますが、その生成を停止したりサイズを変更したりする方法です。

大きい画像のリサイズを停止/変更する

WordPress では大きすぎる画像サイズ(2560px)を超えるサイズの画像をアップロードした場合、画像のサイズがそれ以下になるようリサイズしたものを生成します。

リサイズされた画像は、ファイル名の末尾に-scaledが付与されます。

リサイズ画像を生成しない

big_image_size_thresholdfalseを返します。

add_filter( 'big_image_size_threshold', '__return_false' );

2560px以上のサイズとなると相当な大きさになるので、理由がない限りは特に停止する必要も無い気がします。

リサイズ時のサイズを変更する

例として、リサイズ上限を3000pxに変更する場合。

add_filter( 'big_image_size_threshold', function( $threshold ) {
  return 3000;
});

全てのリサイズ画像の自動生成を停止する

これはおすすめしませんが、リサイズ画像を一切生成したくない場合は、intermediate_image_sizes_advancedに空の配列を返します。

add_filter('intermediate_image_sizes_advanced', '__return_empty_array' );
  • __return_empty_array は WordPress に定義されている __return_empty_array() という関数で、空配列を返すだけです。

生成するリサイズ画像の種類を指定する

全てのリサイズ画像を無効にするのではなく、いくつか無効にしたいときはunset()$new_sizesの中身を削除します。

下記の例では、WordPress がデフォルトで生成する画像を全て unset して削除しています。途中からただの数値表記になってるのでわかりにくいです。

  add_filter('intermediate_image_sizes_advanced', function( $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'] ); // とんでもなく大きいサイズ
  });

参考

big_image_size_threshold について

https://www.bigapplemedia.com/how-to-stop-wordpress-from-resizing-images

intermediate_image_sizes_advanced について

https://devexus.net/articles/disable-wordpress-automatically-creating-image-sizes/