Lompat ke konten
Gambar & media

Cara Menonaktifkan Gambar -scaled di WordPress (big_image_size_threshold)

Atasi gambar WordPress yang terlihat kurang tajam dengan menaikkan atau menghapus batas 2560px lewat filter big_image_size_threshold, dan pahami kenapa upload ulang adalah langkah yang paling sering dilewati.

Dipublikasikan

Tambahkan filter pada big_image_size_threshold yang mengembalikan false dan WordPress berhenti membuat salinan -scaled saat upload. Kembalikan sebuah angka dan Anda menaikkan batasnya, bukan menghapusnya. Keduanya bisa ditaruh di functions.php atau di mu-plugin kecil, dan keduanya hanya berpengaruh pada upload yang dilakukan setelah filter aktif.

// Disable the cap entirely — no -scaled copies at all.
add_filter( 'big_image_size_threshold', '__return_false' );
// Or just raise it. Longest edge, in pixels.
add_filter( 'big_image_size_threshold', function () {
    return 3840;
} );

Apa yang sebenarnya dilakukan WordPress

Sejak WordPress 5.3, setiap upload diukur pada sisi terpanjangnya. Kalau sisi itu lebih besar dari big_image_size_threshold — 2560px secara bawaan — WordPress meng-encode ulang gambar sampai ke batas tersebut, menyimpannya sebagai foto-anda-scaled.jpg, lalu menulis ulang metadata attachment sehingga ukuran full kini menunjuk ke salinan scaled itu.

File asli Anda tidak dihapus. Ia tetap ada di disk dengan nama file aslinya, tercatat di metadata attachment, dan bisa dijangkau lewat PHP dengan wp_get_original_image_path(). Tapi tidak ada bagian front end yang menyajikannya. Tidak block editor, tidak srcset, tidak juga preview di media library. Ia hanya duduk di sana sebagai salinan arsip.

Semua yang di bawahnya kemudian dibuat dari file scaled, bukan dari apa yang Anda upload:

UkuranSumber pembuatannya
fullsalinan -scaled
large, medium_large, medium, thumbnailsalinan -scaled
Ukuran kustom dari add_image_sizesalinan -scaled
Ukuran dari tema dan plugin, mis. woocommerce_thumbnailsalinan -scaled
Kandidat srcsetsalinan -scaled

Satu fakta itulah yang membuat begitu banyak orang terjebak.

Kenapa ini penyebab paling umum “gambar saya tajam tapi tampil buram”

Dua hal terjadi sekaligus, dan hanya satu yang kelihatan.

Yang kelihatan adalah resolusi. Anda upload foto 4000px untuk hero lebar penuh. WordPress menyerahkan 2560px ke browser. Di layar biasa yang mengisi kontainer 1600px, tidak ada yang sadar. Di layar retina 2x, kontainer itu butuh sekitar 3200 piksel nyata, hanya dapat 2560, dan browser menaikkan skalanya untuk menutup selisihnya. Tepi jadi lembek, detail jadi bubur, teks di dalam gambar jadi kabur.

Yang kurang kelihatan adalah enkode ulang. Salinan -scaled bukan potongan lossless dari file Anda. WordPress mendekode file upload Anda, mengubah ukurannya, lalu mengompres ulang dengan pengaturan kualitas JPEG miliknya sendiri. Kalau file asli Anda memang sudah berupa JPEG terkompresi dari Lightroom atau dari ponsel, ini jadi enkode generasi kedua: artefak kompresi di atas artefak kompresi. Detail halus, grain film, dan gradasi datar yang paling menderita. Efeknya bisa terlihat bahkan ketika dimensi pikselnya terasa sudah cukup.

Pastikan dulu sebelum mengubah apa pun. Buka gambarnya di tab baru dan baca nama file di URL-nya. -scaled.jpg berarti batasnya memang bekerja. Akhiran dimensi seperti -1536x1024.jpg artinya lain — srcset memilih ukuran menengah yang terlalu kecil, dan filter threshold tidak akan membantu di kasus itu.

Di server:

find wp-content/uploads -name '*-scaled.*' | wc -l

Kalau angkanya besar, batas itu sudah membentuk seluruh isi media library Anda.

Anda juga bisa memasukkan sebuah file ke tool disable scaled images untuk melihat apakah sumber tertentu akan melewati threshold dan pada dimensi berapa salinan scaled-nya akan mendarat, sebelum Anda menetapkan pengaturannya.

Konsekuensi yang jujur

Kebanyakan artikel bilang mematikan batas ini memakan ruang disk. Itu terbalik, dan layak dijelaskan dengan tepat.

Pemakaian disk per gambar justru sedikit turun. Dengan threshold aktif, WordPress menyimpan file asli Anda dan satu salinan besar hasil scaling. Dengan threshold mati, Anda hanya menyimpan file aslinya. Satu file, bukan dua.

Bandwidth dan bobot halaman naik, kadang banyak. Dengan batas dimatikan, full adalah file upload Anda yang utuh. Apa pun yang menautkan atau merender ukuran full — lightbox, plugin galeri, link “lihat versi asli”, tema yang meminta full untuk gambar hero — sekarang mengirim file yang bisa 6MB alih-alih 900KB. Di perangkat mobile itu masalah Largest Contentful Paint yang nyata, dan CDN gambar tidak selalu menyelamatkan Anda karena sebagian di antaranya meneruskan file apa adanya di atas batas ukuran tertentu.

Konsumsi memori saat upload naik. Mengubah ukuran gambar 6000px di PHP butuh memori jauh lebih besar dibanding gambar 2560px. Di shared hosting murah dengan memory limit PHP yang kecil, mematikan batas ini sangat mungkin membuat upload mulai gagal atau thumbnail hanya sebagian yang terbentuk. Menaikkan threshold ke 3840 alih-alih menghapusnya adalah versi yang lebih aman dari perubahan yang sama.

Karena itu, default yang masuk akal untuk kebanyakan situs adalah menaikkan angkanya, bukan menghapusnya. Menghapusnya baru tepat kalau Anda memang menyajikan gambar yang benar-benar butuh resolusi penuh: galeri kualitas cetak, zoom produk, fotografi arsitektur, atau apa pun yang memang dimaksudkan untuk diperiksa detailnya oleh pengguna.

Menerapkan perubahannya dengan benar

1. Taruh filternya di tempat yang bertahan. functions.php di child theme sudah cukup. Mu-plugin satu file lebih baik, karena pergantian tema tidak bisa diam-diam membatalkannya.

<?php
/**
 * Plugin Name: Raise big image threshold
 */
add_filter( 'big_image_size_threshold', function () {
    return 3840;
} );

2. Upload ulang gambar yang terdampak. Ini langkah yang paling sering dilewati orang, lalu mereka menyimpulkan filternya tidak bekerja. Threshold dievaluasi satu kali saja, yaitu saat upload. Attachment yang sudah ada akan mempertahankan metadata lamanya selamanya. Hapus attachment-nya, upload ulang, lalu perbaiki referensinya di postingan Anda.

3. Jangan berharap regenerate thumbnail menyelamatkan apa pun. wp media regenerate lewat WP-CLI membangun ulang ukuran menengah dari apa pun yang disebut metadata sebagai file full — yang untuk gambar yang sudah terpotong berarti salinan -scaled. Perintah itu tidak bisa mengembalikan detail yang sudah dibuang. Berguna sebagai pembersihan setelah upload ulang. Tidak berguna sebagai solusi tunggal.

4. Periksa hasilnya, jangan diasumsikan. Setelah upload ulang, buka gambarnya di front end dan baca lagi nama filenya. Tidak ada -scaled berarti filternya aktif.

Kapan menonaktifkannya justru langkah yang salah

Kalau gambar sumber Anda sudah di bawah 2560px dan tetap terlihat kurang tajam, threshold tidak pernah terlibat. Masalahnya adalah kotak tampilannya lebih besar daripada piksel yang tersedia, dan jawabannya adalah file sumber yang lebih besar atau kontainer yang lebih kecil — bukan filter ini.

Kalau nama file yang disajikan membawa akhiran dimensi alih-alih -scaled, berarti srcset memilih kandidat yang kecil. Itu biasanya ketidakcocokan antara content width yang dideklarasikan tema Anda dengan kotak tempat gambar benar-benar dirender. Mematikan batas tidak mengubah apa pun soal itu.

Dan kalau ada plugin yang menulis ulang src Anda ke optimizer atau proxy CDN, tidak satu pun hal di atas berlaku sampai Anda memeriksa apa yang sebenarnya disajikan proxy tersebut. Bandingkan apa yang seharusnya dihasilkan WordPress dengan apa yang benar-benar dimuat browser; ketika keduanya berbeda, periksa apa yang duduk di antara mereka.

FAQ

Pertanyaan

Bagaimana cara menonaktifkan scaled images di WordPress?

Tambahkan filter pada big_image_size_threshold yang mengembalikan false. Taruh di functions.php atau di mu-plugin kecil. Mengembalikan false mematikan batasnya sepenuhnya, jadi hasil upload mempertahankan dimensi aslinya dan tidak ada salinan -scaled yang dibuat. Mengembalikan angka, misalnya 3840, berarti menaikkan batasnya, bukan menghapusnya.

Apa arti akhiran -scaled pada nama file WordPress?

Itu menandai salinan hasil enkode ulang yang dibuat WordPress karena file upload Anda melebihi 2560px pada sisi terpanjangnya. Salinan itulah yang menjadi ukuran full di seluruh situs Anda. File asli tetap ada di disk dengan nama normalnya, tapi tidak ada satu pun bagian front end yang menautkannya, dan setiap thumbnail serta kandidat srcset dibangun dari salinan scaled tersebut.

Apakah menonaktifkan scaled images memakan lebih banyak ruang disk?

Per gambar biasanya justru sedikit lebih hemat, karena WordPress berhenti menulis file besar kedua di samping file asli Anda. Biaya sebenarnya ada di bandwidth, bukan penyimpanan. Dengan batas dimatikan, apa pun yang menautkan ukuran full akan menyajikan file asli Anda yang utuh, yang bisa berukuran beberapa megabyte di koneksi ponsel.

Apakah menonaktifkan threshold memperbaiki gambar yang sudah terlanjur buram?

Tidak. Filter ini hanya berpengaruh pada upload baru. Gambar yang sudah ada di media library tetap punya metadata yang menunjuk ke salinan scaled-nya, dan regenerate thumbnail hanya membangun ulang ukuran dari file yang sudah terpotong itu. Untuk mengembalikan resolusinya, Anda harus menghapus attachment-nya dan meng-upload ulang setelah filter aktif.

Apakah 2560px threshold yang tepat untuk dipertahankan?

Untuk sebagian besar situs konten, ya. Sumber 2560px sudah menutupi kotak tampilan 1280px pada kerapatan piksel 2x, dan itu kasus yang paling umum. Naikkan ke 3840 kalau Anda memakai hero full-bleed, zoom produk, atau galeri fotografi. Matikan sepenuhnya hanya kalau Anda memang benar-benar perlu menyajikan file asli tanpa perubahan.