WordPress 7.1'de client-side media processing destekleyen tarayıcılarda varsayılan olarak etkin geliyor.
WordPress 7.1'in wasm-vips ile tarayıcıda resize, thumbnail ve format dönüşümü yapmasını; PHP memory, HEIC, AVIF, plugin hook ve fallback etkilerini öğrenin.
WordPress 7.1'de client-side media processing destekleyen tarayıcılarda varsayılan olarak etkin geliyor.
Compression, resize, format conversion, EXIF rotation ve thumbnail üretimi wasm-vips/libvips ile tarayıcıda yapılabiliyor; sonra üretilen dosyalar sunucuya yükleniyor.
WordPress Core ekibi bu değişikliğin büyük görsel işlemede PHP memory limit hatalarını ortadan kaldırabildiğini ve sunucu CPU/RAM yükünü azalttığını açıkça belirtiyor.
Pipeline uygun değilse WordPress otomatik olarak geleneksel server-side GD/Imagick yoluna geri döner.
Klasik WordPress medya pipeline'ında orijinal görsel PHP üzerinden GD veya Imagick ile açılır; büyük resim ölçeklenir, ara boyutlar oluşturulur, EXIF rotation ve format dönüşümü yapılır. Yüksek megapiksel görsel decode edildiğinde sıkıştırılmış dosya boyutundan çok daha fazla RAM gerekebilir.
Bu yüzden `Allowed memory size exhausted`, 'Post-processing of the image failed' veya yarım kalan thumbnail üretimi hostingte sık görülür. WordPress 7.1 bu ağır işlemin önemli bölümünü upload yapan kullanıcının tarayıcısına taşıyor.
WordPress, libvips'in WebAssembly derlemesi olan wasm-vips'i Web Worker içinde kullanır. Compression, resize, format conversion, rotation ve sub-size/thumbnail üretimi upload öncesinde client tarafında yapılır. Sunucu artık her ara boyutu PHP memory içinde üretmek zorunda kalmaz.
İşlem bittikten sonra client tarafından üretilen dosyalar sunucuya sideload edilir ve finalize adımı çalışır. WordPress yine attachment metadata yaşam döngüsünü tamamlar; yalnız ağır piksel işlemenin yeri değişmiştir.
WordPress geliştirici rehberine göre tam WASM pipeline şu anda Document-Isolation-Policy desteğine bağlı ve Chrome/Edge 137+ gibi Chromium tabanlı destekleyen tarayıcılarda çalışıyor. WebAssembly, SharedArrayBuffer, Web Worker ve CSP'de blob worker izni gerekiyor.
Cihazda 2 GB veya daha az raporlanan bellek, 2'den az CPU core, 2g/slow-2g bağlantı veya Save-Data gibi koşullar client pipeline'ı devre dışı bırakabilir. Bu durumda upload görünürde aynı kalır fakat processing tekrar sunucuya düşer.
WordPress 7.1'in dikkat çekici kazanımlarından biri iPhone HEIC fotoğraflarını destekleyen tarayıcıda JPEG'e dönüştürüp sunucuya öyle gönderebilmesidir. Böylece host tarafında Imagick/HEIC codec desteği olmaması bazı istemcilerde engel olmaktan çıkar.
AVIF desteği de client-side decode/processing sayesinde server image editor capability'sine daha az bağımlı hale gelebilir. Animated GIF tarafında opaque GIF'ler daha verimli companion MP4/WebM videoya dönüştürülebilir; tema/plugin davranışı bu yeni pipeline ile test edilmelidir.
Client-side path'te server-side image editor'ın bazı hook'ları aynı şekilde devreye girmez çünkü gerçek pixel processing PHP'de yapılmaz. WordPress finalize aşamasında `wp_generate_attachment_metadata` filtresini çalıştırarak plugin'lere tam sub-size metadata'yı görme fırsatı verir.
Özel `WP_Image_Editor` implementation'a veya `image_make_intermediate_size` davranışına bağımlı eklentiler WordPress 7.1 staging ortamında test edilmelidir. WordPress rehberi, site özel image editor'a kesin bağımlıysa client-side processing'i kapatma seçeneğini de belgeler.
WordPress 7.1 `wp_client_side_media_processing_enabled` filtresini sunar. Plugin uyumsuzluğu veya özel iş akışı varsa site-wide olarak `__return_false` ile geleneksel server-side pipeline'a dönebilirsiniz.
Sorun çıktığında ilk refleks özelliği kalıcı kapatmak olmamalı. Browser console, CSP, plugin hook ve server fallback sonucunu karşılaştırarak hangi katmanın bozulduğunu belirleyin.
add_filter( 'wp_client_side_media_processing_enabled', '__return_false' );
Hayır. WordPress 7.1 yalnız desteklenen client-side image processing yolunda ağır görsel işlemenin PHP memory baskısını azaltır. Eklenti işlemleri, import, backup, WooCommerce, admin AJAX, cron ve fallback media path hâlâ PHP memory kullanır.
Ayrıca upload_max_filesize, post_max_size, web-server body limit ve disk/inode kotası client-side processing ile ortadan kalkmaz. Tarayıcı resmi küçültse bile sunucu final dosyaları kabul edip saklamak zorundadır.
| Özellik | Eski/server path | 7.1 client path |
|---|---|---|
| Resize/thumbnail | PHP + GD/Imagick | Browser + wasm-vips |
| PHP memory baskısı | Yüksek olabilir | Pixel processing için büyük ölçüde kalkar |
| Destek yoksa | N/A | Server-side fallback |
Komutları üretim sistemine uygulamadan önce bağlamı doğrulayın, yedek ve geri dönüş planı oluşturun. DNS, TLS, recovery, Docker veya WordPress ayarlarında birden fazla değişkeni aynı anda değiştirmek kök nedeni görünmez hale getirir.
Hayır. Client media processing yalnız görsel pipeline'ındaki memory baskısını azaltır; WordPress'in diğer PHP işlemleri için limit hâlâ önemlidir.
Güncel geliştirici rehberine göre tam WASM pipeline DIP gereksinimi nedeniyle Firefox'ta desteklenmiyor ve server-side fallback kullanılıyor.
Evet. `wp_client_side_media_processing_enabled` filtresiyle kapatıp klasik server-side media pipeline'a dönebilirsiniz.
Sorun hosting, VPS, Docker, Cloudflare, Windows veya WordPress altyapınızda devam ediyorsa hata çıktısı ve mevcut mimariyle birlikte teknik destek kaydı oluşturabilirsiniz.