Sunucu Dostu WebP Eklentisi

WordPress sitelerimizde en büyük disk alanı düşmanı hiç şüphesiz görsellerdir. Siteyi hızlandırmak için WebP formatına geçmek istiyoruz, ancak piyasadaki popüler eklentiler (Smush, Imagify vb.) genellikle orijinal JPEG/PNG dosyasını da sunucuda “yedek” olarak tutuyor. Bu da bir görsel yüklediğinizde sunucuda iki dosya barındırmanız anlamına geliyor.

Eğer yeni bir projeye başlıyorsanız veya “Eski dosyalarla işim yok, sadece hızlı açılan WebP olsun, diskim dolmasın” diyorsanız, sizin için harika ve ultra hafif bir çözümüm var.

Bu Eklenti Ne Yapar? Bu basit eklenti (Micro-Plugin), WordPress medya kütüphanesine bir resim yüklediğiniz anda devreye girer ve şunları yapar:

  1. Yüklediğiniz JPEG veya PNG dosyasını yakalar.

  2. Otomatik olarak WebP formatına çevirir (Kalite: %85).

  3. Transparanlığı korur (PNG logolarınız siyah olmaz).

  4. En önemlisi: Orijinal yüklenen büyük dosyayı sunucudan siler.

Böylece sunucunuzda gereksiz dosya yığınları (inode kullanımı) oluşmaz ve disk alanından ciddi tasarruf sağlarsınız.

Özellikleri:

  • Ayar Gerektirmez: Yükle ve etkinleştir. Panelde ayar sayfası aramanıza gerek yok.

  • Sunucu Dostu: Sadece resim yükleme anında 1 saniye çalışır, sitenizi yavaşlatan arka plan işlemleri yapmaz.

  • Ücretsiz ve Açık Kaynak: Aşağıdaki kodları kullanarak kendi eklentinizi oluşturabilirsiniz.

Nasıl Kurulur? Aşağıdaki kodları bir metin dosyasına yapıştırın, dosya adını basit-webp.php yapın, zipleyip sitenize yükleyin. Ya da direkt olarak functions.php dosyanıza ekleyebilirsiniz.

<?php
/**
* Plugin Name: Basit WebP Dönüştürücü (Orijinali Siler)
* Description: Yüklenen JPEG/PNG dosyalarını WebP'ye çevirir, transparanlığı korur ve disk tasarrufu için orijinal dosyayı siler.
* Version: 1.0
* Author: [Sizin Adınız veya Site Adınız]
* License: GPL2
*/

defined( 'ABSPATH' ) || exit;

add_filter( 'wp_handle_upload', 'custom_force_webp_on_upload' );

function custom_force_webp_on_upload( $upload_data ) {

// İşlenecek formatlar
$supported_types = array( 'image/jpeg', 'image/png' );

// Dosya türü desteklenmiyorsa veya hata varsa çık
if ( ! in_array( $upload_data['type'], $supported_types ) || isset( $upload_data['error'] ) ) {
return $upload_data;
}

$file_path = $upload_data['file'];

// Resim editörünü başlat
$image_editor = wp_get_image_editor( $file_path );

if ( ! is_wp_error( $image_editor ) ) {

// Kalite ayarı: %85 (Boyut ve kalite dengesi)
$image_editor->set_quality( 85 );

$file_info = pathinfo( $file_path );
$dirname = $file_info['dirname'];
$filename = $file_info['filename'];
$new_file_path = $dirname . '/' . $filename . '.webp';

// Aynı isimde dosya varsa üzerine yazma, sonuna sayı ekle
$i = 1;
while ( file_exists( $new_file_path ) ) {
$new_file_path = $dirname . '/' . $filename . '-' . $i . '.webp';
$i++;
}

// WebP olarak kaydet
$saved = $image_editor->save( $new_file_path, 'image/webp' );

if ( ! is_wp_error( $saved ) ) {

// BAŞARILI: Orijinal dosyayı (JPEG/PNG) sunucudan sil
@unlink( $file_path );

// Veritabanı bilgisini güncelle
$upload_data['file'] = $new_file_path;
$upload_data['url'] = str_replace( basename( $upload_data['url'] ), basename( $new_file_path ), $upload_data['url'] );
$upload_data['type'] = 'image/webp';
}
}

return $upload_data;
}
?>

Bu eklentiyi kullanmadan önce, sunucunuzda Imagick veya GD kütüphanesinin aktif olduğundan emin olun (çoğu sunucuda standarttır). Eklenti sadece yeni yüklenen görseller için çalışır, eskileri dönüştürmez.

Bir yanıt yazın

9 Aralık 2025

WooCommerce Sepette Adet Değişince Otomatik Güncelleme

WooCommerce’in varsayılan çalışma mantığında, kullanıcı sepet sayfasında ürün adetini değiştirir ama sepet otomatik olarak güncellenmez. Bunun yerine “Sepeti Güncelle” butonuna manuel olarak basmak gerekir. Bu durum […]