WordPressで不要な画像サイズの自動生成を停止する

以前に管理画面上で画像の自動生成を止める方法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行目のコメントアウトを外してください。

参考サイト

このエントリーをはてなブックマークに追加

関連記事

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

CAPTCHA


コメントが承認されるまで時間がかかります。

2024年4月
 123456
78910111213
14151617181920
21222324252627
282930