Come servire immagini diverse in base alla dimensione dello schermo con WordPress

29 mag 2013, 12:10:11
Visualizzazioni: 21.1K
Voti: 3

Sto creando un sito WordPress responsive con un approccio mobile-first.

Quando il mio cliente carica un'immagine per un post del blog, vorrei che WordPress generasse automaticamente versioni più piccole dell'immagine (con una dimensione del file ridotta!) che vengano poi servite agli schermi di dimensioni minori.

Anche se l'utente dovesse caricare manualmente diverse versioni dell'immagine, questa sarebbe comunque una buona soluzione.

So che esiste una funzione chiamata add_image_size, tuttavia credo che questa modifichi solo le dimensioni dell'immagine, e non l'effettiva dimensione del file. Le diverse dimensioni dei file sono l'aspetto più importante in questo caso.

Quindi c'è qualche plugin o codice che devo scrivere per abilitare questa funzionalità?

Attendo con interesse qualsiasi aiuto o consiglio su questa questione.

Grazie

6
Commenti

Abbiamo molti thread su questo argomento. Hai cercato nel nostro sito?

fuxia fuxia
29 mag 2013 12:21:34

Sì, ma tutti quelli che ho trovato si riferiscono solo al ridimensionamento delle immagini. Io voglio che si riduca anche la DIMENSIONE DEL FILE, così i dispositivi più piccoli non devono scaricare immagini pesanti.

Adam Adam
29 mag 2013 12:27:14

Vedi questa risposta.

fuxia fuxia
29 mag 2013 12:30:55

sì ma non specifica come vengono prodotte le diverse variazioni dell'immagine. Non posso sostituire manualmente ogni immagine che l'utente carica nell'admin. Qualcosa come questo potrebbe funzionare http://wordpress.org/plugins/picturefillwp/

Adam Adam
29 mag 2013 12:57:12

Potresti voler dare un'occhiata a: http://adaptive-images.com/; informazioni aggiuntive su come integrarlo con wordpress qui: http://windcompanionwebdesign.com/articles/wordpress-articles/using-adaptive-images-in-a-wordpress-responsive-design/

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

So che questo è un post vecchio, ma mentre lo cercavo per rispondere alla stessa domanda, mi sono imbattuto in questo plugin, e sembra fare ciò che tu/io abbiamo bisogno. https://en-ca.wordpress.org/plugins/adaptive-images/

KVDD KVDD
27 feb 2017 22:06:53
Mostra i restanti 1 commenti
Tutte le risposte alla domanda 3
2

add_image_size modifica effettivamente la dimensione del file dell'immagine.

Quello che ho provato:

function odevice_image_sizes() {
    add_image_size( 'iphone-size', 300, 100, true ); //Ovviamente le dimensioni non sono corrette...
    add_image_size( 'tablet-size', 600, 300, true );
}


function show_odevice_at_img_select($sizes) {
    $sizes['iphone-size'] = __( 'Dimensione immagine per iPhone' );
    $sizes['tablet-size'] = __( 'Dimensione immagine per tablet' );

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

Quando controlli il tipo di dispositivo (iPhone o tablet), puoi usare le immagini personalizzate in questo modo

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

Non posso inviarti uno screenshot poiché non ho la reputazione necessaria. Ma puoi verificare nella cartella uploads che le immagini caricate con le tue dimensioni personalizzate avranno dimensioni diverse (sul disco), quindi consumeranno una banda differente. Minori sono le dimensioni, minore sarà la banda utilizzata.

29 mag 2013 14:43:27
Commenti

Grazie. Penso che tu abbia ragione, ho sempre dato per scontato che add_image_size riguardasse solo le dimensioni. Quindi sembra che questa funzionalità sia già presente in WordPress.

Adam Adam
29 mag 2013 16:19:28

questo è ancora il metodo corrente nel 2017?

Zach Smith Zach Smith
20 gen 2017 12:36:52
0

panos ha centrato il punto. Puoi usare add_image_size per creare immagini di dimensioni diverse per scopi differenti. Per approfondire un po' la tua domanda, voglio aggiungere:

Una volta che hai creato diverse dimensioni di immagini con add_image_size, puoi servirle per dispositivi diversi utilizzando il plugin WordPress Mobble (o qualsiasi altro riconoscimento di dispositivo basato su php) http://wordpress.org/plugins/mobble

Basta fare un semplice if else come questo:

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

Il modo più semplice è utilizzare il CSS

Io utilizzo il seguente codice sul mio sito.

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

Spero che il codice CSS sopra riportato possa esserti utile.

29 mag 2013 12:18:23
Commenti

No, perché i dispositivi più piccoli scaricano comunque un'immagine grande. La mia preoccupazione qui è la larghezza di banda.

Adam Adam
29 mag 2013 12:28:17

Se non vuoi usare il css. Conosco solo una soluzione, devi usare "add_image_size". Spero che tu possa risolvere il tuo problema.

v123shine v123shine
29 mag 2013 12:42:18

Sì, l'ho già menzionato nella mia domanda. Non credo tu abbia capito.

Adam Adam
29 mag 2013 12:58:27