set_post_thumbnail_size vs add_image_size: differenze e utilizzo
Qual è la differenza tra set_post_thumbnail_size e add_image_size? set_post_thumbnail_size è per tutte le immagini, mentre add_image_size serve per dimensionare le immagini individualmente?
Grazie.

Quando un'immagine viene caricata in WordPress, viene salvata nella sua dimensione originale e anche come alcune copie ridimensionate in diverse dimensioni. In questo modo diventa facile utilizzare dimensioni diverse della stessa immagine per scopi differenti.
Per impostazione predefinita, WordPress crea 3 copie in 3 dimensioni diverse:
'thumb'
'medium'
'large'
La dimensione in pixel per queste 3 grandezze può essere impostata nella dashboard di WordPress, sotto il menu Impostazioni -> Media
.
La funzione add_image_size
viene utilizzata per registrare una nuova dimensione, che si aggiunge alle 3 predefinite.
Ogni dimensione registrata può essere recuperata utilizzando il suo nome in alcune funzioni di WordPress, ad esempio wp_get_attachment_image_src
, wp_get_attachment_image
, wp_get_attachment_link
.
Tutte queste funzioni accettano un parametro $size
che dovrebbe essere il nome di una delle dimensioni registrate (una delle 3 standard o una delle dimensioni personalizzate registrate con add_image_size
).
Se viene utilizzato 'full'
come argomento $size
, viene restituita l'immagine originale, quella non ridimensionata.
Oltre alle funzioni menzionate sopra, ci sono altre due funzioni che utilizzano le dimensioni delle immagini: get_the_post_thumbnail
e the_post_thumbnail
.
Queste due funzioni ottengono (la prima) e mostrano (la seconda) l'immagine impostata come "Immagine in evidenza" per un articolo.
Ciò che viene restituito (o mostrato) da queste funzioni è un tag HTML img
completo, qualcosa come
<img scr="http://www.example.com/wp-content/2013/08/image-200x200.jpg" />
Quindi, quale dimensione viene utilizzata?
Se viene passato un $size
come secondo argomento (il primo è $postid
), allora queste funzioni restituiscono l'immagine in quella dimensione. Altrimenti, queste funzioni cercano una dimensione immagine registrata con il nome: post-thumbnail
.
Questa non è una delle 3 dimensioni predefinite, infatti, è la 4a dimensione standard (la 5a è considerata full
) e puoi registrarla chiamando set_post_thumbnail_size
.
Quindi
set_post_thumbnail_size( $width, $height, $crop );
è una scorciatoia per
add_image_size( 'post-thumbnail', $width, $height, $crop );
Se non hai chiamato set_post_thumbnail_size
(il che significa che la dimensione 'post-thumbnail'
non è stata creata), WordPress utilizzerà la dimensione thumb
, e se anche questa dimensione non è disponibile, WordPress utilizzerà l'immagine originale, quella non ridimensionata.
Registrare dimensioni personalizzate per le immagini può essere molto utile quando si progetta un tema, ma è importante non abusarne: ogni immagine caricata viene copiata e ridimensionata per tutte le dimensioni registrate, quindi registrare molte dimensioni rallenterà notevolmente il processo di caricamento delle immagini.
Una nota:
Tieni presente che quando WordPress crea copie ridimensionate di un'immagine, non la ingrandisce mai, ma crea solo copie più piccole: ad esempio, se l'immagine originale è 400x500px e la dimensione 'medium' è 800x600px, le dimensioni medium e più grandi non vengono create.
Quindi registrare una dimensione immagine non dà mai la sicurezza che un file immagine per ogni dimensione registrata esista effettivamente nella cartella dei contenuti di WordPress. Anche perché le dimensioni delle immagini registrate cambiano facilmente: modificando le impostazioni, cambiando tema, ecc.
Quando una dimensione immagine cambia, per qualsiasi motivo, la modifica ha effetto sulle immagini caricate dopo tale modifica; le immagini caricate prima non cambiano dimensioni e non vengono ridimensionate e risalvate.
Se si ha bisogno di fare affidamento su dimensioni specifiche delle immagini dopo che alcune immagini sono già state caricate (ad esempio dopo aver cambiato tema), allora il plugin Regenerate Thumbnails sarà un salvataggio.

Fantastico. Avrei cliccato 5 volte per la tua risposta ma il sito non lo permette. Grazie.

Solo un'altra domanda: Cosa succede se non ho chiamato set_post_thumbnail_size (il che significa che la dimensione 'post-thumbnail' non è stata creata), e poi chiamo the_post_thumbnail. Cosa accade? (perché the_post_thumbnail cercherà di usare post-thumbnail come parametro).

Questa risposta è molto utile! Tuttavia, penso che questo:
set_post_thumbnail_size( 150, 150 ); Se non hai chiamato set_post_thumbnail_size (il che significa che la dimensione 'post-thumbnail' non è stata creata), WordPress utilizzerà la dimensione thumb, e se anche questa dimensione non è disponibile, WordPress utilizzerà l'immagine originale, quella non ridimensionata.
...sia errato. Nella mia esperienza testando questo, se set_post_thumbnail_size()
non è stato chiamato, WP torna all'immagine a dimensione intera.

Dal Codex:
set_post_thumbnail_size
Imposta le dimensioni predefinite per l'Immagine in Evidenza (precedentemente chiamata Post Thumbnail). Per registrare dimensioni aggiuntive per le Immagini in Evidenza utilizzare: add_image_size().
add_image_size
Registra una nuova dimensione per le immagini. Ciò significa che WordPress creerà una copia dell'Immagine in Evidenza (precedentemente chiamata post thumbnail) con le dimensioni specificate quando carichi una nuova immagine.
