set_post_thumbnail_size vs add_image_size


11

Qual è la differenza tra set_post_thumbnail_size e add_image_size? Set_post_thumbnail_size è per tutte le immagini e add_image_size per il dimensionamento delle immagini singolarmente?

Grazie.

Risposte:


26

Quando un'immagine viene caricata in WordPress, viene salvata nella sua dimensione originale e anche come copie ridimensionate di dimensioni diverse. In questo modo diventa facile usare dimensioni diverse, della stessa immagine, per scopi diversi.

Per impostazione predefinita, WordPress crea 3 copie in 3 diverse dimensioni:

  • 'thumb'
  • 'medium'
  • 'large'

Le dimensioni in pixel per queste 3 dimensioni possono essere impostate nella dashboard di WordPress, sotto il menu Settings -> Media.

Ora, la funzione add_image_sizeviene utilizzata per registrare una nuova dimensione, che aggiunge ai 3 valori predefiniti.

Ogni dimensione registrato può essere recuperato utilizzando il suo nome, in qualche funzione di WordPress, ad esempio wp_get_attachment_image_src, wp_get_attachment_image, wp_get_attachment_link.

Tutte queste funzioni accettano un parametro $sizeche dovrebbe essere il nome di una delle dimensioni registrate (una delle 3 norme o una delle dimensioni personalizzate registrate con add_image_size).

Se 'full'viene utilizzato come $sizeargomento, viene restituita l'immagine originale, quella non ridimensionata.

Oltre alle funzioni sopra menzionate, ci sono altre due funzioni che fanno uso delle dimensioni dell'immagine: get_the_post_thumbnaile the_post_thumbnail.

Queste due funzioni ottengono (la prima) e riecheggiano (la seconda) l'immagine impostata come "Immagine in primo piano" per un post.

Ciò che viene restituito (o ripetuto) da queste funzioni è un imgtag HTML completo , qualcosa del genere

<img scr="http://www.example.com/wp-content/2013/08/image-200x200.jpg" />

Quindi, qual è la dimensione utilizzata?

Se a $sizeviene passato come secondo argomento (il primo è $postid), queste funzioni restituiscono l'immagine in quella dimensione. In caso contrario, cercare queste funzioni per una dimensione dell'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.

Così

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 thumbe se anche questa dimensione non è disponibile, WordPress utilizzerà l'immagine originale, quella non ridimensionata.

La registrazione di dimensioni personalizzate delle immagini può essere molto utile quando si progetta un tema, ma è importante non abusare: ogni immagine caricata viene copiata e ridimensionata per tutte le dimensioni registrate, quindi la registrazione di molte dimensioni rallenterà notevolmente il processo di caricamento delle immagini.

Una nota:

Ricorda che quando WordPress crea copie in scala di un'immagine, non la ingrandisce mai, ma crea solo copie più piccole: ad es. Se l'immagine originale è 400x500px e la dimensione dell'immagine "media" è 800x600px, le dimensioni medie e maggiori non vengono create.

Quindi la registrazione di una dimensione di immagine non garantisce mai la sicurezza che un file di immagine per ogni dimensione registrata esista effettivamente nella cartella del contenuto di WordPress. Anche perché le dimensioni delle immagini registrate cambiano facilmente: modifica delle impostazioni, cambio di temi, ecc.

Quando una dimensione dell'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 riscalate e salvate.

Se è necessario fare affidamento su dimensioni di immagini specifiche dopo che alcune immagini sono già state caricate (ad es. Dopo aver modificato i temi), il plug-in Rigenerare le anteprime sarà un salvavita.


2
Eccezionale. Avrei fatto clic 5 volte a causa della tua risposta ma il sito non lo consente. Thanls.
Greeso,


Ancora un altro questoin: cosa succede se non ho chiamato set_post_thumbnail_size (il che significa che la dimensione 'post-thumbnail' non è stata creata, quindi chiamo the_post_thumbnail. Che cosa succederà? (Perché the_post_thumbnail proverà a usare post-thumbnail come param.)
Greeso

@GM, Complimenti per una spiegazione lucida
Istiaque Ahmed,

Questa risposta è molto utile! Tuttavia, penso che questo: set_post_thumbnail_size( 150, 150 ); If you haven't called set_post_thumbnail_size (which means the size 'post-thumbnail' is not created), WordPress will use the size thumb, and if even this size is not available, WordPress will use the original image, the one not resized. ... non sia corretto. Nella mia esperienza test questo, se set_post_thumbnail_size()non è stato chiamato, WP ritorna all'immagine a dimensione intera.
Travis Northcutt,

1

Dal codice:

set_post_thumbnail_size

Imposta le dimensioni predefinite dell'immagine in primo piano (precedentemente Post Miniatura). Per registrare dimensioni dell'immagine aggiuntive per le immagini in primo piano, utilizzare: add_image_size ().

add_image_size

Registra una nuova dimensione dell'immagine. Ciò significa che WordPress creerà una copia dell'immagine in primo piano (precedentemente nota come post thumbnail) con le dimensioni specificate quando carichi una nuova immagine.


Posso usare add_image_size senza usare set_post_thumbnail_size?
Greeso,

Sì, naturalmente.
Krzysiek Dróżdż
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.