¿Cómo obtener el tamaño de la miniatura de una entrada?

14 dic 2011, 23:59:01
Vistas: 27.2K
Votos: 16

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?

0
Todas las respuestas a la pregunta 7
3
15

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.

10 feb 2012 10:43:12
Comentarios

Esta es realmente la mejor opción porque el plugin puede ejecutar sus hooks en él.

fuxia fuxia
10 feb 2012 15:55:34

Por eso me sorprende que aún no se haya mencionado.

Mark Mark
10 feb 2012 16:00:01

¿Esto no parece funcionar para tamaños de imagen personalizados?

Loosie94 Loosie94
16 mar 2022 16:46:30
1

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.

15 dic 2011 15:54:42
Comentarios

Parece ser post-thumbnail en lugar de post_thubmnail (WP3.6)

user2019515 user2019515
23 sept 2013 12:38:18
1

Lo único que aún falta es el ID de la miniatura:

$post_thumbnail_id = get_post_thumbnail_id( $post_id );
$attachment = wp_get_attachment_image_src( $post_thumbnail_id );
$width=$attachment[1];
$height=$attachment[2];
20 jul 2012 16:33:45
Comentarios

En realidad, esta es la única respuesta realmente útil para todos los casos posibles, especialmente cuando no se está en el contexto de la publicación.

Picard Picard
30 oct 2021 14:02:47
0

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.

10 feb 2012 16:42:17
1

Tenga en cuenta que este global $_wp_additional_image_sizes; podría no funcionar como se espera. Por ejemplo, cuando se usa en un plugin, no devolverá los tamaños adicionales que un Tema haya registrado.

26 ene 2012 23:37:21
Comentarios

Funcionará si realizas la llamada lo suficientemente tarde en la secuencia de acciones, es decir, si el tema registra los tamaños en la acción init, tu llamada debe hacerse después de que esa acción haya ocurrido.

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

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.

15 dic 2011 00:32:59
Comentarios

Sí, pero espera un ID para una imagen dada, el usuario no tiene un ID para pasar, quiere averiguar el tamaño registrado por nombre, ej. thumbnail(post_thumbnail).

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

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