Məzmuna keç
Şəkillər və media

WordPress -scaled Şəkillərini Necə Söndürmək Olar (big_image_size_threshold)

2560px həddini big_image_size_threshold filtri ilə qaldırın və ya tamamilə silin, həm də insanların ötürdüyü addımın niyə yenidən yükləmək olduğunu öyrənin.

Nəşr olundu

big_image_size_threshold üçün false qaytaran filtr əlavə edin və WordPress yükləmə zamanı -scaled nüsxələri yaratmağı dayandırsın. Onun əvəzinə rəqəm qaytarsanız, həddi silmiş yox, qaldırmış olursunuz. Hər ikisi functions.php faylına və ya kiçik mu-plaginə düşür və hər ikisi yalnız filtr aktiv olduqdan sonra yüklənən fayllara təsir edir.

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

WordPress əslində nə edir

WordPress 5.3-dən bəri yüklənən hər fayl uzun tərəfi üzrə ölçülür. Həmin tərəf big_image_size_threshold dəyərindən — hazır halda 2560px — böyükdürsə, WordPress şəkli həmin hədədək yenidən kodlayır, your-photo-scaled.jpg adı ilə saxlayır və əlavənin metaməlumatını elə yenidən yazır ki, full ölçüsü artıq kiçildilmiş nüsxəyə işarə etsin.

Orijinalınız silinmir. O, diskdə öz ilkin adı ilə qalır, əlavənin metaməlumatında qeyd olunur və PHP tərəfdə wp_get_original_image_path() vasitəsilə əlçatandır. Ancaq ön tərəfdə heç nə onu təqdim etmir. Nə blok redaktoru, nə srcset, nə də media kitabxanasının önizləməsi. O sadəcə arxiv nüsxəsi kimi orada durur.

Bundan sonrakı hər şey isə yüklədiyiniz fayldan yox, kiçildilmiş fayldan yaradılır:

ÖlçüHansı fayldan qurulur
full-scaled nüsxə
large, medium_large, medium, thumbnail-scaled nüsxə
add_image_size ilə əlavə edilmiş xüsusi ölçülər-scaled nüsxə
Mövzu və plagin ölçüləri, məsələn woocommerce_thumbnail-scaled nüsxə
srcset namizədləri-scaled nüsxə

Bu tək fakt bu qədər insanı çaşdırmasının səbəbidir.

”Kəskin şəklim yumşaq görünür” şikayətinin adi səbəbi nə üçün budur

Eyni anda iki şey baş verir və bunlardan yalnız biri gözə görünür.

Göz önündə olanı ölçüdür. Tam enli hero üçün 4000px-lik foto yükləyirsiniz. WordPress brauzerə 2560px verir. 1600px-lik konteyneri dolduran adi ekranda bunu heç kim hiss etmir. 2x retina ekranda isə həmin konteyner təxminən 3200 real piksel istəyir, 2560 alır və brauzer fərqi süni şəkildə böyüdür. Nəticə: yumşaq kənarlar, yayılmış detal, şəklin içindəki mətnin bulanıqlaşması.

Daha az gözə çarpanı isə yenidən kodlaşdırmadır. -scaled nüsxə faylınızın itkisiz kəsimi deyil. WordPress yüklədiyinizi dekod edir, ölçüsünü dəyişir və öz JPEG keyfiyyət parametri ilə yenidən sıxır. Orijinalınız Lightroom-dan və ya telefondan çıxmış artıq sıxılmış JPEG idisə, bu, ikinci nəsil kodlaşdırmadır: sıxılma artefaktlarının üstünə yeni sıxılma artefaktları. Ən çox zərəri incə detal, film dənəsi və hamar keçidlər görür. Piksel ölçüləri kifayət qədər görünəndə belə bunu sezmək olur.

Heç nəyi dəyişməzdən əvvəl bunu təsdiqləyin. Şəkli yeni tabda açın və URL-dəki fayl adını oxuyun. -scaled.jpg həddin işə düşdüyünü bildirir. -1536x1024.jpg kimi ölçü sonluğu isə başqa şey deməkdir — srcset çox kiçik aralıq ölçü seçib və hədd filtri orada sizə kömək etməyəcək.

Serverdə:

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

Bu rəqəm böyükdürsə, hədd bütün kitabxananıza forma verib.

Həmçinin scaled şəkilləri söndürmə alətinə fayl atıb, hansısa mənbənin həddi keçib-keçməyəcəyini və kiçildilmiş nüsxənin hansı ölçüdə alınacağını parametri seçməzdən əvvəl görə bilərsiniz.

Dürüst güzəşt

Əksər məqalələr həddi söndürməyin disk yeri baxımından baha başa gəldiyini yazır. Bu, tərsinədir və dəqiq danışmağa dəyər.

Hər şəkil üzrə disk istifadəsi bir az azalır. Hədd aktiv olanda WordPress həm orijinalınızı, həm də böyük kiçildilmiş nüsxəni saxlayır. Söndürüləndə isə yalnız orijinal qalır. İki fayl yerinə bir fayl.

Trafik və səhifə çəkisi artır, bəzən xeyli. Hədd söndürüləndə full sizin toxunulmamış faylınız olur. Tam ölçüyə keçid verən və ya onu göstərən hər şey — lightbox, qalereya plagini, “orijinalı göstər” linki, hero şəkilləri üçün full tələb edən mövzu — indi 900KB əvəzinə 6MB ola bilən fayl göndərir. Mobil cihazda bu, real Largest Contentful Paint problemidir və şəkil CDN-ləri sizi həmişə xilas etmir, çünki bəziləri müəyyən ölçü həddindən yuxarı faylları olduğu kimi ötürür.

Yükləmə zamanı yaddaş sərfi artır. PHP-də 6000px-lik şəklin ölçüsünü dəyişmək 2560px-likdən xeyli çox yaddaş tələb edir. PHP yaddaş limiti aşağı olan ucuz paylaşımlı hostinqdə həddi söndürmək uğursuz yükləmələrin və ya yarımçıq yaradılmış miniatürlərin başlaması üçün real səbəbdir. Həddi silmək əvəzinə 3840-a qaldırmaq eyni dəyişikliyin daha təhlükəsiz variantıdır.

Buna görə də əksər saytlar üçün ağlabatan seçim rəqəmi qaldırmaqdır, silmək yox. Silmək o zaman düzgündür ki, həqiqətən tam keyfiyyət tələb edən şəkillər təqdim edirsiniz: çap keyfiyyətli qalereyalar, məhsul yaxınlaşdırması, memarlıq fotoqrafiyası — yəni istifadəçinin orijinalı diqqətlə nəzərdən keçirməsi gözlənilən hər şey.

Dəyişikliyi düzgün tətbiq etmək

1. Filtri sağ qalacağı yerə qoyun. Uşaq mövzudakı functions.php işə yarayır. Birfayllıq mu-plagin daha yaxşıdır, çünki mövzu dəyişikliyi onu səssizcə ləğv edə bilmir.

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

2. Təsirlənmiş şəkilləri yenidən yükləyin. Bu, insanların ötürdüyü və sonra filtrin işləmədiyi qənaətinə gəldiyi addımdır. Hədd bir dəfə — yükləmə anında — qiymətləndirilir. Mövcud əlavələr köhnə metaməlumatını əbədi saxlayır. Əlavəni silin, faylı yenidən yükləyin, sonra yazılarınızdakı istinadları düzəldin.

3. Miniatürlərin yenidən yaradılmasının nəyisə xilas edəcəyini gözləməyin. WP-CLI vasitəsilə wp media regenerate aralıq ölçüləri metaməlumatın tam fayl saydığı şeydən qurur — artıq məhdudlaşdırılmış şəkil üçün bu isə -scaled nüsxədir. Atılmış detalı bərpa etmək onun əlindən gəlmir. Yenidən yükləmədən sonra təmizləmə kimi faydalıdır. Tək başına həll kimi faydasızdır.

4. Nəticəni yoxlayın, güman etməyin. Yenidən yüklədikdən sonra şəkli ön tərəfdə açın və fayl adını yenidən oxuyun. -scaled yoxdursa, filtr işləyir.

Söndürmək nə vaxt səhv addımdır

Mənbə şəkilləriniz onsuz da 2560px-dən kiçikdirsə və yenə də yumşaq görünürsə, hədd heç vaxt işin içində olmayıb. Problem odur ki, göstərici sahəsi mövcud piksellərdən böyükdür, cavab isə daha böyük mənbə fayl və ya daha kiçik konteynerdir — bu filtr yox.

Təqdim olunan fayl adı -scaled yerinə ölçü sonluğu daşıyırsa, srcset kiçik namizəd seçib. Bu, adətən mövzunuzun elan etdiyi məzmun eni ilə şəklin əslində göstərildiyi sahə arasındakı uyğunsuzluqdur. Həddi söndürmək burada heç nəyi dəyişmir.

Hansısa plagin src atributunuzu optimallaşdırıcıya və ya CDN proksisinə yönləndirirsə, həmin proksinin nə təqdim etdiyini yoxlayana qədər bunların heç biri tətbiq olunmur. WordPress-in nə yaratmalı olduğunu brauzerin əslində nə yüklədiyi ilə müqayisə edin; uyğunsuzluq varsa, aralarında duran şeyə baxın.

FAQ

Suallar

WordPress-də scaled şəkilləri necə söndürmək olar?

big_image_size_threshold üçün false qaytaran filtr əlavə edin. Onu functions.php faylına və ya kiçik bir mu-plagin daxilinə qoyun. false qaytarmaq həddi tamamilə söndürür, yəni yüklənən fayllar öz orijinal ölçülərini saxlayır və heç bir -scaled nüsxə yaradılmır. Onun əvəzinə rəqəm, məsələn 3840 qaytarsanız, hədd silinmir, sadəcə qaldırılır.

WordPress fayl adındakı -scaled sonluğu nə deməkdir?

Bu, yüklədiyiniz faylın uzun tərəfi 2560px-i keçdiyi üçün WordPress-in yaratdığı yenidən kodlanmış nüsxəni bildirir. Həmin nüsxə saytınızda hər yerdə tam ölçü rolunu oynayır. Orijinal faylınız diskdə öz adı ilə qalır, amma ön tərəfdə heç nə ona keçid vermir və bütün miniatürlər ilə srcset namizədləri həmin kiçildilmiş nüsxədən qurulur.

scaled şəkilləri söndürmək daha çox disk yeri tutur?

Hər şəkil üzrə adətən bir az az yer tutur, çünki WordPress orijinalınızın yanında ikinci böyük fayl yazmağı dayandırır. Əsl xərc yaddaş yox, trafikdir. Hədd söndürüldükdə tam ölçüyə keçid verən hər şey sizin toxunulmamış faylınızı təqdim edir və bu, mobil bağlantıda bir neçə meqabayt ola bilər.

Həddi söndürmək artıq qeyri-aydın olan şəkilləri düzəldəcəkmi?

Xeyr. Filtr yalnız yeni yüklənən fayllara təsir edir. Kitabxanada artıq mövcud olan şəkillərin metaməlumatı öz kiçildilmiş nüsxəsinə işarə etməyə davam edir və miniatürlərin yenidən yaradılması da ölçüləri həmin məhdudlaşdırılmış fayldan qurur. Keyfiyyəti geri qaytarmaq üçün əlavəni silib filtr aktiv olduqdan sonra faylı yenidən yükləməlisiniz.

2560px saxlanılmalı düzgün həddir?

Əksər məzmun saytları üçün bəli. 2560px-lik mənbə 1280px-lik göstərici sahəsini 2x piksel sıxlığında örtür və adi hal budur. Tam enli hero şəkilləri, məhsul yaxınlaşdırması və ya fotoqrafiya qalereyaları işlədirsinizsə, onu 3840-a qaldırın. Tamamilə söndürməyi isə yalnız toxunulmamış orijinalları təqdim etməyə həqiqətən ehtiyacınız olanda seçin.