wordpressで、リサイズされる画像の自動生成を停止する方法
wordpressでアップロード済みの画像を
整理しようと思ってフォルダを見てみたら、
やたらと同じ画像のリサイズが何個もあるのを見つけて
「うわ!っ」と驚いてしまったので、
wordpressによる、不要なリサイズ画像の自動生成を止める方法を調べてみました。
wordpressで自動生成されるサイズ
使うテーマによっても、異なるサイズが自動生成されたりするため、
状況は異なりますが、wordpressに画像をアップすると、
以下のようなサイズがデフォルトでつくられます。
フルサイズ [full] | オリジナルの画像 |
サムネイル [thumbnail] | 150px x 150px |
中 [medium] | 300px x 300px |
大 [large] | 1024px x 1024px |
下記はwordpressのバージョンによって追加で自動生成されるようになったサイズです。
ミディアムラージ [medium_large] | 768px x 0 ※レスポンシブ対応のためにつくられる画像で、高さの設定はなし |
1536px×1536px WordPress 5.3から生成 | |
2048px×2048px WordPress 5.3から生成 | |
最大値 scaled | 2560px×2560px 最大のサイズで、名前にscaledがつきます |
オリジナルの画像のサイズが設定の大きさに満たない場合は、
それ以上の大きさのリサイズ画像はつくられず、
オリジナルより小さいリサイズ画像が作成されます。
今回はサンプルとして、設定をいじらず2000pxの画像をアップロードしてみたら、
下記のようなサイズが自動生成されました。
多い、、やたらと多いです、、、
Visual Portfolio(VP)というプラグインを入れているので、
そちらでさらに自動作成される量が増えているようです。(後ほど消します!)
生成されたリサイズ画像は、投稿画面で画像を選ぶときに、
右のパネルからサイズを選ぶことが可能となります。
順番を追って、余計なリサイズ画像を消す設定を追加していきます。
メディア設定を変更する
まず初めに、wordpressの管理画面から、設定>メディアを選択し、
「サムネイル」「中サイズ」「大サイズ」の幅&高さの数値を全て0にして、保存します。
「Visual Portfolio」の設定も変更
(使っていない方は読み飛ばしてください)
今回入れている、ギャラリーをつくるのに便利な「Visual Portfolio」というプラグインでも
デフォルト設定だと画像を余計につくるようなので、
こちらもvisual portfolio > Iimages から、数字の部分を全て0に変更しました。
これまでの設定をくわえて再度画像アップロードをしてみると、
画像フォルダの方は下記のようになり、
生成される画像が減りました。
function.phpで、add_filterを追加
※function.phpをいじった時に、エラーが出ると動かなく可能性もあるため、
必ずバックアップをとってから行うことをおすすめします。
これまでの設定だと、
まだ768px(‘medium_large)と1536pxの大きさが残ったので、
外観>テーマエディターからfunction.phpを開き、add_filterを使って
画像生成に関しての設定を書き加え、自動生成を止めます。
function remove_default_img_sizes($sizes){
unset($sizes['medium_large']);
unset($sizes['1536x1536']);
return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'remove_default_img_sizes');
ちなみに、そのほかのサイズも下記のように追加して止めることが可能です。
function remove_default_img_sizes($sizes){
unset($sizes['thumbnail']);
unset($sizes['medium']);
unset($sizes['medium_large']);
unset($sizes['large']);
unset($sizes['1536x1536']); // 1536pxの画像を停止
unset($sizes['2048x2048']); // 2048pxの画像を停止
return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'remove_default_img_sizes');
ここまでの変更を加えて改めてアップロードすると、
無事にフルサイズのみになりました!
add_image_size()
function.phpに変更を加える場合、filter以外の方法では、
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);
最大画像2560px(-scaled)の設定を変更する
あまり使うことはなさそうですが、
WordPress5.3からは、2560px以上の大きさの画像をアップロードした場合、
「フルサイズ」に設定した時に表示される画像として
自動的に2,560pxのサイズにリサイズされ、
名前に「-scaled」がついた画像が生成されるそうです。
(オリジナル画像も画像フォルダ内には残ります)
最大画像の数値設定をなくす場合は、
function.phpに下記を追加します。
add_filter( 'big_image_size_threshold', '__return_false' );
これで高さが2560px以上の大きな画像をアップロードした時も
リサイズがされなくなります!
まとめ
やたらとwordpressのバックアップデータが重たい??と思ってみてみたら
大量のリサイズを発見して、かなり画像をアップした後だったので、消すのが大変でした。。
設定を変えた時点からの適応になり、
すでにアップロードされている画像については適用されないので、
使わない画像をためて後々サーバーを圧迫しないためにも、
まったく使うことのないサイズに関しては、
最初から画像のアップロードサイズ設定を整理しておくのがおすすめです!