¿Cómo obtener el tamaño de la miniatura de una entrada?
Sé cómo establecer el tamaño de una imagen miniatura de entrada usando la configuración de Medios en el Panel de WordPress o usando esta función:
set_post_thumbnail_size( 150, 150 )
Pero ¿cómo se puede obtener el ancho y el alto que se han establecido para el tamaño de una imagen miniatura?
Me gustaría poder hacer algo como esto:
get_post_thumbnail_size(); // devuelve array(150, 150)
¿Cómo se podría hacer esto? ¿Se hace usando get_option()
, y serían las claves de las opciones para el ancho y alto de la miniatura?

Sin embargo, existe otra forma:
get_option( 'thumbnail_size_w' );
get_option( 'thumbnail_size_h' );
Nota: thumbnail
es uno de los tamaños configurados dentro de $_wp_additional_image_sizes
. Por lo tanto, la llamada a get_option()
funcionará para cualquier otro tamaño de imagen también.

Cuando se añade un tamaño de imagen ya sea por WordPress (add_image_size
), por un plugin o por tu propio código personalizado, se agrega al global $_wp_additional_image_sizes
. No encuentro una función similar para extraer datos de ese global, pero ciertamente podrías mirar dentro del global para determinar qué ancho y alto tiene un tamaño de imagen registrado.
Ejemplo:
global $_wp_additional_image_sizes;
// Mostrar el ancho
echo $_wp_additional_image_sizes['post_thumbnail']['width'];
// Mostrar el alto
echo $_wp_additional_image_sizes['post_thumbnail']['height'];
Por supuesto, asegúrate de hacer referencia a esos valores en un momento posterior a cuando hayas establecido el tamaño. Por ejemplo, si estás configurando el tamaño de miniatura durante init, necesitarás asegurarte de hacer lo que necesites después de ese punto (de lo contrario obtendrás los tamaños como estaban antes de establecerlos).
Espero que esto ayude.

Como complemento sobre por qué es tan difícil recuperar estos números, existe una mejora en el núcleo que contiene un parche terminado. Lamentablemente, aún no está incluido en el núcleo.
Solo sigue el progreso de este ticket: WordPress Trac: Mejorar get_intermediate_image_sizes()
para que contenga no solo los nombres, sino también los tamaños.

Lo que necesitas es esta función: wp_get_attachment_image_src
Codex: http://codex.wordpress.org/Function_Reference/wp_get_attachment_image_src
Devolverá un array que contiene la URL, ancho y alto del adjunto.

Además del post anterior:
$attachment = wp_get_attachment_image_src( $attachment_id ); // donde $attachment_id es el ID del adjunto del que quieres obtener la miniatura
Luego simplemente usa el siguiente código para mostrar la URL, anchura y altura:
echo $attachment[0]; // url
echo $attachment[1]; // anchura
echo $attachment[2]; // altura
