Come ottenere le dimensioni della miniatura dell'articolo?
So come impostare le dimensioni di un'immagine miniatura dell'articolo usando le Impostazioni Media di WP Admin o usando questa funzione:
set_post_thumbnail_size( 150, 150 )
Ma come si possono ottenere la larghezza e altezza che sono state impostate per una dimensione della miniatura dell'immagine?
Vorrei poter fare qualcosa del genere:
get_post_thumbnail_size(); // restituisce array(150, 150)
Come si può fare questo? Si usa get_option()
, e quali sarebbero le chiavi delle opzioni per larghezza e altezza della miniatura?

Tuttavia, esiste un altro metodo:
get_option( 'thumbnail_size_w' );
get_option( 'thumbnail_size_h' );
Nota: thumbnail
è una delle dimensioni impostate all'interno di $_wp_additional_image_sizes
. Quindi la chiamata a get_option()
funzionerà anche per tutte le altre dimensioni delle immagini.

Questa è effettivamente l'opzione migliore perché il plugin può eseguire i suoi hook su di essa.

Quando viene aggiunta una dimensione dell'immagine, sia da WordPress (add_image_size
), da un plugin o dal tuo codice personalizzato, questa viene aggiunta alla variabile globale $_wp_additional_image_sizes
. Non esiste una funzione simile per estrarre i dati da questa variabile globale, ma puoi semplicemente esaminare il contenuto della variabile globale per determinare la larghezza e l'altezza di una dimensione di immagine registrata.
Esempio:
global $_wp_additional_image_sizes;
// Mostra la larghezza
echo $_wp_additional_image_sizes['post_thumbnail']['width'];
// Mostra l'altezza
echo $_wp_additional_image_sizes['post_thumbnail']['height'];
Ovviamente, assicurati di fare riferimento a questi valori dopo aver impostato la dimensione. Ad esempio, se stai impostando la dimensione della miniatura durante l'init, dovrai assicurarti di eseguire qualsiasi operazione necessaria dopo quel punto (altrimenti otterrai le dimensioni così come erano prima di impostarle).
Spero che questo sia utile.

L'unica cosa che manca ancora è l'ID della miniatura:
$post_thumbnail_id = get_post_thumbnail_id( $post_id ); // Ottiene l'ID dell'immagine in evidenza
$attachment = wp_get_attachment_image_src( $post_thumbnail_id ); // Recupera i dati dell'immagine
$width=$attachment[1]; // Larghezza dell'immagine
$height=$attachment[2]; // Altezza dell'immagine

Come aggiunta al motivo per cui è così difficile recuperare questi numeri, esiste un miglioramento del core che contiene una patch completata. Purtroppo non è ancora stato integrato nel core.
Puoi seguire l'avanzamento di questo ticket: Wordpress Trac: Migliorare get_intermediate_image_sizes()
per includere non solo i nomi, ma anche le dimensioni.

Quello che ti serve è questa funzione: wp_get_attachment_image_src
Codex: http://codex.wordpress.org/Function_Reference/wp_get_attachment_image_src
Ritornerà un array contenente l'URL dell'allegato, la larghezza e l'altezza.

Oltre al post sopra:
$attachment = wp_get_attachment_image_src( $attachment_id ); // dove $attachment_id è l'ID dell'allegato di cui vuoi ottenere la miniatura
Poi usa semplicemente il codice seguente per visualizzare l'url, larghezza e altezza:
echo $attachment[0]; // url
echo $attachment[1]; // larghezza
echo $attachment[2]; // altezza
