Cum pot servi imagini diferite în funcție de dimensiunea ecranului în WordPress

29 mai 2013, 12:10:11
Vizualizări: 21.1K
Voturi: 3

Creez un site WordPress responsiv cu o abordare mobile-first.

Când clientul meu încarcă o imagine pentru o postare de blog, aș dori ca WordPress să genereze automat versiuni mai mici ale imaginii (cu o dimensiune mai mică a fișierului!) care să fie apoi servite pentru dimensiuni mai mici ale ecranului.

Chiar dacă utilizatorul trebuie să încarce manual mai multe versiuni ale imaginii, aceasta ar fi în continuare o soluție bună.

Știu că există o funcție numită add_image_size, dar cred că aceasta modifică doar dimensiunile imaginii, nu și dimensiunea efectivă a fișierului. Diferitele dimensiuni ale fișierelor sunt cele mai importante aici.

Există vreun plugin sau cod pe care trebuie să-l scriu pentru a activa această funcționalitate?

Aștept cu interes orice ajutor sau sfat legat de această întrebare.

Mulțumesc

6
Comentarii

Avem multe discuții pe acest subiect. Ai căutat pe site-ul nostru?

fuxia fuxia
29 mai 2013 12:21:34

Da, dar toate pe care le-am găsit se referă doar la redimensionarea imaginilor. Vreau ca și DIMENSIUNEA FIȘIERULUI să se reducă, astfel încât dispozitivele mici să nu descarce imagini grele.

Adam Adam
29 mai 2013 12:27:14

Vezi acest răspuns.

fuxia fuxia
29 mai 2013 12:30:55

da, dar nu specifică cum sunt produse diferitele variații ale imaginii. Nu pot înlocui manual fiecare imagine încărcată de utilizator în admin. Ceva de genul acesta ar putea funcționa http://wordpress.org/plugins/picturefillwp/

Adam Adam
29 mai 2013 12:57:12

Ai putea să te uiți la: http://adaptive-images.com/; informații suplimentare despre cum să integrezi cu WordPress aici: http://windcompanionwebdesign.com/articles/wordpress-articles/using-adaptive-images-in-a-wordpress-responsive-design/

Nicolai Grossherr Nicolai Grossherr
29 mai 2013 15:08:59

Știu că acesta este un post mai vechi, dar pe măsură ce l-am găsit în căutarea mea pentru a răspunde la aceeași întrebare, am dat peste acest plugin și pare să facă ceea ce ai/am nevoie. https://en-ca.wordpress.org/plugins/adaptive-images/

KVDD KVDD
27 feb. 2017 22:06:53
Arată celelalte 1 comentarii
Toate răspunsurile la întrebare 3
2

add_image_size modifică dimensiunea reală a fișierului imagine.

Ceea ce am încercat:

function odevice_image_sizes() {
    add_image_size( 'iphone-size', 300, 100, true );//Bineînțeles că dimensiunile nu sunt corecte...
    add_image_size( 'tablet-size', 600, 300, true );
}


function show_odevice_at_img_select($sizes) {
    $sizes['iphone-size'] = __( 'Dimensiune imagine pentru iPhone' );
    $sizes['tablet-size'] = __( 'Dimensiune imagine pentru tabletă' );

    return $sizes;
}
add_action( 'init', 'odevice_image_sizes' );
add_filter('image_size_names_choose', 'show_odevice_at_img_select');

Când verifici tipul dispozitivului (iPhone sau tabletă), poți folosi imaginile personalizate astfel:

<?php the_post_thumbnail( 'iphone-size' ); ?>

Nu pot să vă trimit o captură de ecran deoarece nu am reputația necesară. Dar puteți vedea în folderul uploads că imaginile încărcate cu dimensiunile personalizate vor avea dimensiuni diferite (pe disc), deci vor consuma lățime de bandă diferită. Cu cât dimensiunile sunt mai mici, cu atât consumul de lățime de bandă este mai mic.

29 mai 2013 14:43:27
Comentarii

Mulțumesc. Cred că ai dreptate, întotdeauna am presupus că add_image_size era doar pentru dimensiuni. Se pare că această funcționalitate este deja în WordPress.

Adam Adam
29 mai 2013 16:19:28

este aceasta încă metoda actuală în 2017?

Zach Smith Zach Smith
20 ian. 2017 12:36:52
0

panos a avut dreptate. Poți utiliza funcția add_image_size pentru a crea imagini de diferite dimensiuni pentru diferite scopuri. Pentru a continua puțin mai departe cu întrebarea ta, vreau să adaug:

Odată ce ai creat dimensiuni diferite de imagini cu add_image_size, le poți servi pentru diferite dispozitive folosind pluginul Wordpress Mobble (sau orice altă recunoaștere a dispozitivului bazată pe php) http://wordpress.org/plugins/mobble

Pur și simplu folosește o instrucțiune if-else simplă, cam așa:

if ( is_mobile() ) : the_post_thumbnail( 'mobile-size' );
elseif( is_tablet() ) : the_post_thumbnail( 'tablet-size' );
else : the_post_thumbnail( 'full' );
endif;
30 mai 2013 14:19:24
3
-1

Cea mai ușoară metodă este utilizarea css

Eu folosesc următorul cod pe site-ul meu.

.your_div img {
height:auto;
max-width:100%;
}

Sper că codul css de mai sus vă poate ajuta.

29 mai 2013 12:18:23
Comentarii

Nu, deoarece dispozitivele mai mici încă descarcă o imagine mare. Problema mea aici este lățimea de bandă.

Adam Adam
29 mai 2013 12:28:17

Dacă nu doriți să folosiți css. Cunosc doar o soluție, trebuie să utilizați "add_image_size". Sper să vă puteți rezolva problema.

v123shine v123shine
29 mai 2013 12:42:18

Da, am menționat deja asta în întrebarea mea. Nu cred că înțelegeți.

Adam Adam
29 mai 2013 12:58:27