Come ottenere le dimensioni della miniatura dell'articolo?

14 dic 2011, 23:59:01
Visualizzazioni: 27.2K
Voti: 16

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?

0
Tutte le risposte alla domanda 7
3
15

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.

10 feb 2012 10:43:12
Commenti

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

fuxia fuxia
10 feb 2012 15:55:34

Ecco perché sono sorpreso che non sia stato ancora menzionato.

Mark Mark
10 feb 2012 16:00:01

Sembra che questo non funzioni per le dimensioni personalizzate delle immagini?

Loosie94 Loosie94
16 mar 2022 16:46:30
1

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.

15 dic 2011 15:54:42
Commenti

Sembra essere post-thumbnail piuttosto che post_thubmnail (WP3.6)

user2019515 user2019515
23 set 2013 12:38:18
1

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
20 lug 2012 16:33:45
Commenti

In realtà questa è l'unica risposta veramente utile per tutti i casi possibili, specialmente quando non si è nel contesto del post.

Picard Picard
30 ott 2021 14:02:47
0

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.

10 feb 2012 16:42:17
1

Tieni presente che questo global $_wp_additional_image_sizes; potrebbe non funzionare come previsto. Ad esempio, quando lo usi in un plugin, non restituirà le dimensioni aggiuntive che un tema ha registrato.

26 gen 2012 23:37:21
Commenti

Funzionerà se effettui la chiamata abbastanza avanti nella sequenza di azioni, ad es. se il tema registra le dimensioni sull'azione init, la tua chiamata deve essere fatta dopo che quell'azione è avvenuta.

t31os t31os
11 apr 2013 22:08:07
1
-1

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.

15 dic 2011 00:32:59
Commenti

Sì, ma si aspetta un ID per una determinata immagine, l'utente non ha un ID da passare, vuole scoprire la dimensione registrata per nome, es. thumbnail (post_thumbnail).

t31os t31os
19 dic 2011 15:12:50
0
-1

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
15 dic 2011 12:18:50