当サイトは広告収入で運営しています

【プラグインなし】WordPressでJPG画像をアップロードした際に、自動で圧縮するfunctions.php用のコード

このページにいいね!する

Googleの生成AIのGeminiに件のコードを書いてもらったので、備忘録として残します。

PNGやWebpなども使用する場合はEWWW Image Optimizerプラグインを入れておけばいいのですが。

私が作っているサイトの一つに、JPGしかアップロードしないところがあり。プラグインをできるだけ減らしたいなーと。

Geminiさんに聞いてみたら、以下のコードを生成してくれました。

/**
* JPG画像をアップロード時に自動で圧縮する
*
* @param int $attachment_id 添付ファイルのID.
* @return void
*/
function auto_compress_uploaded_jpg( $attachment_id ) {
// 添付ファイルのメタデータを取得
$file = get_attached_file( $attachment_id );
$mime_type = get_post_mime_type( $attachment_id );

// JPGファイルの場合のみ処理を実行
if ( 'image/jpeg' === $mime_type ) {
// 圧縮品質を設定 (0〜100、100が最高品質だがファイルサイズは大きくなる)
$quality = 80;

// 画像を読み込む
$image = imagecreatefromjpeg( $file );

if ( $image ) {
// 圧縮して保存
imagejpeg( $image, $file, $quality );

// メモリを解放
imagedestroy( $image );
}
}
}
add_action( 'add_attachment', 'auto_compress_uploaded_jpg' );

これを子テーマのfunctions.phpに貼り付ければ完了です。

ちょっとどんなプロンプトでお願いしたか覚えていなくて、チャットも見失っちゃったんですが。

使用テーマはCocoonで、特に問題なく動いてくれています(*’ω’*)

  • 画像はJPGしか使わない
  • プラグインを少しでも減らしたい
  • テーマはCocoon(それ以外でも動くかもしれないけど)

という方は、お試しください^^

    タイトルとURLをコピーしました