Sari la conținut
Imagini și media

Cum dezactivezi imaginile -scaled în WordPress (big_image_size_threshold)

Rezolvă imaginile moi din WordPress ridicând sau eliminând limita de 2560px cu filtrul big_image_size_threshold și află de ce reîncărcarea e pasul pe care toată lumea îl sare.

Publicat

Adaugă un filtru pe big_image_size_threshold care returnează false și WordPress nu mai creează copii -scaled la încărcare. Returnează în schimb un număr și ridici limita în loc să o elimini. Ambele variante intră în functions.php sau într-un mic mu-plugin și ambele afectează doar fișierele încărcate după ce filtrul e activ.

// 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;
} );

Ce face WordPress, de fapt

Începând cu WordPress 5.3, fiecare fișier încărcat este măsurat pe latura lungă. Dacă latura aceea e mai mare decât big_image_size_threshold — 2560px din start — WordPress recodează imaginea până la acea limită, o salvează ca your-photo-scaled.jpg și rescrie metadatele atașamentului astfel încât dimensiunea full să indice acum spre copia scalată.

Originalul tău nu este șters. Rămâne pe disc sub numele lui inițial, înregistrat în metadatele atașamentului, și accesibil din PHP prin wp_get_original_image_path(). Dar nimic din partea publică nu îl servește. Nici editorul de blocuri, nici srcset, nici previzualizarea din biblioteca media. Stă acolo ca o copie de arhivă.

Tot ce vine mai departe este generat din fișierul scalat, nu din ce ai încărcat tu:

DimensiuneSursa din care se construiește
fullcopia -scaled
large, medium_large, medium, thumbnailcopia -scaled
Dimensiuni personalizate din add_image_sizecopia -scaled
Dimensiuni de temă și de plugin, de exemplu woocommerce_thumbnailcopia -scaled
Candidații din srcsetcopia -scaled

Faptul acesta, singur, e motivul pentru care atât de multă lume se lovește de problemă.

De ce asta e cauza obișnuită a lui „imaginea mea clară arată moale”

Se întâmplă două lucruri deodată și doar unul dintre ele e evident.

Cel evident e rezoluția. Încarci o fotografie de 4000px pentru un antet pe toată lățimea. WordPress îi dă browserului 2560px. Pe un ecran obișnuit care umple un container de 1600px, nimeni nu observă. Pe un ecran retina 2x, containerul acela vrea în jur de 3200 de pixeli reali, primește 2560, iar browserul întinde diferența. Margini moi, detaliu pastos, textul din imagine devine neclar.

Cel mai puțin evident e recodarea. Copia -scaled nu e o decupare fără pierderi din fișierul tău. WordPress decodează fișierul încărcat, îl redimensionează și îl recomprimă la propria lui setare de calitate JPEG. Dacă originalul tău era deja un JPEG comprimat ieșit din Lightroom sau dintr-un telefon, asta e o codare de generația a doua: artefacte de compresie peste artefacte de compresie. Detaliul fin, granulația și degradeurile plate suferă cel mai tare. Se vede chiar și atunci când dimensiunile în pixeli par suficiente.

Confirmă înainte să schimbi ceva. Deschide imaginea într-o filă nouă și citește numele fișierului din adresă. -scaled.jpg înseamnă că limita s-a activat. Un sufix cu dimensiuni, de tipul -1536x1024.jpg, înseamnă altceva — srcset a ales un intermediar prea mic, iar filtrul pentru prag nu te ajută acolo.

Pe server:

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

Dacă numărul acela e mare, limita ți-a modelat toată biblioteca.

Poți și să pui un fișier în instrumentul pentru dezactivarea imaginilor scaled ca să vezi dacă o anumită sursă ar depăși pragul și la ce dimensiuni ar ajunge copia scalată, înainte să te decizi asupra unei setări.

Compromisul, spus sincer

Majoritatea articolelor îți spun că dezactivarea limitei costă spațiu pe disc. Este pe dos și merită să fim preciși aici.

Spațiul folosit per imagine scade ușor. Cu pragul activ, WordPress păstrează originalul tău și o copie scalată mare. Cu el oprit, păstrezi doar originalul. Un fișier în loc de două.

Lățimea de bandă și greutatea paginii cresc, uneori mult. Cu limita oprită, full este fișierul tău neatins. Orice trimite sau randează dimensiunea full — un lightbox, un plugin de galerie, un link „vezi originalul”, o temă care cere full pentru imaginile de antet — livrează acum un fișier care ar putea avea 6MB în loc de 900KB. Pe mobil asta e o problemă reală de Largest Contentful Paint, iar CDN-urile de imagini nu te salvează întotdeauna, pentru că unele dintre ele lasă fișierele să treacă neatinse peste o anumită limită de mărime.

Memoria consumată la încărcare crește. Redimensionarea unei imagini de 6000px în PHP cere considerabil mai multă memorie decât una de 2560px. Pe găzduire partajată ieftină, cu o limită mică de memorie PHP, dezactivarea limitei e o cale plauzibilă spre încărcări eșuate sau miniaturi generate pe jumătate. Ridicarea pragului la 3840 în loc de eliminarea lui e varianta mai sigură a aceleiași modificări.

De aceea alegerea rezonabilă pentru majoritatea site-urilor e să ridici numărul, nu să îl elimini. Eliminarea e corectă atunci când servești imagini care chiar au nevoie de rezoluție completă: galerii de calitate tipografică, zoom pe produse, fotografie de arhitectură, orice situație în care utilizatorul se așteaptă să inspecteze originalul.

Cum aplici modificarea corect

1. Pune filtrul undeva unde supraviețuiește. functions.php într-o temă copil merge. Un mu-plugin de un singur fișier e mai bun, pentru că o schimbare de temă nu îl poate anula în tăcere.

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

2. Reîncarcă imaginile afectate. Ăsta e pasul pe care lumea îl sare și apoi trage concluzia că filtrul nu a funcționat. Pragul e evaluat o singură dată, la încărcare. Atașamentele existente își păstrează metadatele vechi pentru totdeauna. Șterge atașamentul, încarcă-l din nou, apoi corectează referințele din articole.

3. Nu te aștepta ca regenerarea miniaturilor să salveze ceva. wp media regenerate prin WP-CLI reconstruiește dimensiunile intermediare din fișierul pe care metadatele îl consideră full — iar pentru o imagine deja limitată acela este copia -scaled. Nu poate reface detaliul care a fost aruncat. Util ca operațiune de curățenie după reîncărcare. Inutil ca soluție de sine stătătoare.

4. Verifică rezultatul, nu îl presupune. După reîncărcare, deschide imaginea în partea publică și citește din nou numele fișierului. Lipsa lui -scaled înseamnă că filtrul e activ.

Când dezactivarea e mișcarea greșită

Dacă imaginile tale sursă sunt deja sub 2560px și tot arată moi, pragul nu a fost niciodată implicat. Problema e că zona de afișare e mai mare decât pixelii disponibili, iar răspunsul e un fișier sursă mai mare sau un container mai mic — nu filtrul acesta.

Dacă numele fișierului servit are un sufix cu dimensiuni în loc de -scaled, srcset a ales un candidat mic. De obicei e o nepotrivire între lățimea de conținut declarată de temă și caseta în care se randează efectiv imaginea. Oprirea limitei nu schimbă nimic acolo.

Iar dacă un plugin îți rescrie src către un optimizator sau un proxy de CDN, nimic din toate astea nu se aplică până nu verifici ce servește proxy-ul acela. Compară ce ar trebui să genereze WordPress cu ce încarcă efectiv browserul; când cele două nu corespund, uită-te la ce stă între ele.

FAQ

Întrebări

Cum dezactivez imaginile scaled în WordPress?

Adaugă un filtru pe big_image_size_threshold care returnează false. Pune-l în functions.php sau într-un mic mu-plugin. Returnarea lui false oprește complet limita, așa că fișierele încărcate își păstrează dimensiunile originale și nu se mai creează nicio copie -scaled. Dacă returnezi în schimb un număr, cum ar fi 3840, ridici limita în loc să o elimini.

Ce înseamnă sufixul -scaled dintr-un nume de fișier WordPress?

Marchează o copie recodată pe care WordPress a făcut-o pentru că fișierul încărcat depășea 2560px pe latura lungă. Copia aceea devine dimensiunea full peste tot pe site. Fișierul tău original rămâne pe disc sub numele lui normal, dar nimic din partea publică nu trimite către el, iar fiecare miniatură și fiecare candidat din srcset se construiesc din copia scalată.

Consumă mai mult spațiu pe disc dacă dezactivez imaginile scaled?

Per imagine, de obicei consumă puțin mai puțin, pentru că WordPress nu mai scrie un al doilea fișier mare lângă originalul tău. Costul real este lățimea de bandă, nu spațiul. Cu limita oprită, orice trimite către dimensiunea full servește fișierul tău neatins, care poate avea câțiva megaocteți pe o conexiune de telefon.

Dezactivarea pragului repară imaginile care sunt deja neclare?

Nu. Filtrul afectează doar încărcările noi. Imaginile aflate deja în bibliotecă păstrează metadate care indică spre copia lor scalată, iar regenerarea miniaturilor reconstruiește dimensiunile din același fișier limitat. Ca să recuperezi rezoluția, trebuie să ștergi atașamentul și să îl încarci din nou după ce filtrul este activ.

Este 2560px pragul potrivit de păstrat?

Pentru majoritatea site-urilor de conținut, da. O sursă de 2560px acoperă o casetă de afișare de 1280px la densitate de 2x, adică situația obișnuită. Ridică-l la 3840 dacă folosești imagini de antet pe toată lățimea, zoom pe produse sau galerii foto. Dezactivează-l complet doar când chiar ai nevoie să servești fișierele originale neatinse.