Come servire immagini diverse in base alla dimensione dello schermo con WordPress
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

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.

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;

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

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