なんでもプラグインにするのは良くないよね
はい。筆者がブログを書くときはいつも念仏のように口走っております。
管理画面が煩雑になるのが個人的に本当に好きではない・・・。
自動画像圧縮コードはこちら
デフォルトでもwordpressには画像圧縮機能があるようですが、
カスタマイズしたい方もいらっしゃるかと思うので、こちらをご査収ください。笑
function.phpにこちらのコードをペーストしてください。
function my_theme_custom_image_compression( $file ) {
$image_path = $file['file'];
// 画像の拡張子を取得
$image_extension = pathinfo( $image_path, PATHINFO_EXTENSION );
if ( strtolower( $image_extension ) === 'jpeg' || strtolower( $image_extension ) === 'jpg' ) {
// JPEG形式の場合の処理
$image = imagecreatefromjpeg( $image_path );
} elseif ( strtolower( $image_extension ) === 'png' ) {
// PNG形式の場合の処理
$image = imagecreatefrompng( $image_path );
} else {
// 他の形式の場合の処理
return $file; // サポートされていない形式の場合は何もせずに返す
}
// 圧縮の品質を設定
$compression_quality = 80; // カスタマイズ可能な品質値
if ( strtolower( $image_extension ) === 'png' ) {
// PNGの場合、9までの範囲で指定
$compression_quality = 9; // カスタマイズ可能な品質値(0から9の範囲)
}
// 圧縮後の画像を保存
if ( strtolower( $image_extension ) === 'jpeg' || strtolower( $image_extension ) === 'jpg' ) {
imagejpeg( $image, $image_path, $compression_quality );
} elseif ( strtolower( $image_extension ) === 'png' ) {
imagepng( $image, $image_path, $compression_quality );
}
return $file;
}
add_filter( 'wp_handle_upload', 'my_theme_custom_image_compression' );
こちらをペーストすると、アップロードする際に処理が走り、
自動で画像が圧縮されるようになります。
また、変数:$compression_qualityの値をいじることで、品質を調整できます。
品質を比較してみた!
こんなこと、皆さんにお知らせするという前提がなければやらないんですが、
今回は良い記事にしたいなと思ったので、やってみる・・・。
まずはこちらが検証画像です。(3.1MB)ほど。
1920×1438ピクセルのフリー画像。
ブログ用に実際の下記画像は圧縮していますけどね。

では検証画像行ってみよう!
圧縮率:100(2.1MB)

圧縮していないけど、3MB→2.1MBにはなるのね・・。笑
こちらに関しては、デフォルトの圧縮機能が機能したのか?
圧縮率:80(334KB)

80にしただけで、圧縮の恩恵をはっきりと感じられるような数字(334KB)になってきました。
実用レベルですね。
圧縮率:50(186KB)

圧縮率50で、元画像の1/15程度まで圧縮できました!
しかも、画像の品質もいい感じです!
まさに、webなら許されるラインといった感じです。
さ、どんどんいきましょう〜!
圧縮率:30(134KB)

影面が荒れが目立つ結果に。
よほど容量を削りたい時でないと、実用には至らないレベルか・・・。
圧縮率:10(72KB)

容量はもちろん下がっているけれども、もう見たくないぐらいには荒れていますね。笑
結果、50〜70程度の圧縮率が正義
基本は画像一枚300KB以内に抑えたいところ。
圧縮率が50〜70程度で実装が望ましいと、筆者は判断しました。
皆さんも使ってみてくださいね。