Con l’uscita di WordPress 4.4, la gestione delle immagini responsive in WordPress è cambiata: possiamo ora infatti affidare al sistema la gestione delle immagini sfruttando il meccanismo delle Responsive images, utilizzando direttamente le funzioni che WordPress ci permette di utilizzare nel nostro tema.

WordPress creerà quindi automaticamente diverse dimensioni delle immagini in Libreria, in modo da poter utilizzare l’attributo srcset del tag <img> permettendo al browser dell’utente di selezionare (leggasi, caricare) l’immagine nella “misura giusta” compatibilmente con la risoluzione dello schermo e la banda a disposizione – un ottimo metodo per risparmiare dati e permettere un caricamento molto più veloce – a tutto beneficio della User Experience.

In questo post darò per scontata la conoscenza delle responsive images e della loro gestione “base” in WordPress.

Le standard size di WordPress

Quali sono le misure che WordPress genererà automaticamente? Di partenza, cioè senza cambiare nulla, avremo queste misure:

Con WordPress 4.4+, è stata aggiunta di fatto la misura  medium_large da 768px di larghezza (senza limiti di altezza) e può essere utilizzata come tutte le altre già presenti in precedenza. Queste stesse misure andranno a “formare”, come sappiamo, lo srcset delle nostre immagini utilizzando la funzione wp_get_attachment_image_srcset():

Otterremo un risultato come questo nel quale diverse dimensioni:

Aggiungere misure allo srcset con add_image_size()

Con la funzione add_image_size() diciamo a WordPress di generare nuove thumbnails oltre a quelle elencate in precedenza. La sintassi è molto semplice:

Aggiungiamo, ad esempio, due nuove misure di dimensioni massime 1280x1280px e 1920x1920px:

Se volessimo avere altezze “infinite” dovremmo indicare come 9999 il parametro dell’altezza massima:

Volendo invece ritagliare la nuova immagine ad una larghezza ed altezza specifica, impostiamo true il quarto parametro:

Questi sono esempi veloci, per familiarizzare meglio con la funzione add_image_size() vi consiglio di consultare il codex di WordPress.

Alzare il limite massimo di max_srcset_image_width

Come già detto in precedenza, da quando WordPress supporta le immagini responsive tutto è più semplice con le funzioni integrate. Un caso particolare, però, è quello dato dalla variabile di sistema (filter) max_srcset_image_width. Di default, infatti, è impostata a 1600px. Questo significa che non otterremo mai nell’attributo srcset versioni delle immagini più larghe di 1600px, anche se, come nel caso precedente, abbiamo indicato al sistema di generare delle anteprime chiamate “fhd” da 1920px di larghezza.

Non ci resta che annullare questo limite aggiungendo a functions.php questa funzione:

Se volessimo essere più prudenti, potremmo impostare un limite definito, ad esempio 2560px:

Otterremo così immagini responsive anche di grande larghezza, oltre i 1600px di misura massima.