¿Cómo se obtiene el tamaño de miniatura de la publicación?

13

Sé cómo configurar el tamaño de una imagen en miniatura de la publicación usando la Configuración de medios de administración de WP o esta función :

set_post_thumbnail_size( 150, 150 )

Pero, ¿cómo se obtendría el ancho y la altura de la imagen que se han establecido para un tamaño de miniatura de imagen?

Me gustaría poder hacer algo como esto:

get_post_thumbnail_size(); // return array(150, 150)

¿Cómo se haría esto? ¿Es mediante el uso get_option(), y las teclas de opciones serían para ancho y alto de miniatura?

Mikkelbreum
fuente

Respuestas:

8

Cuando se agrega un tamaño de imagen ya sea por WordPress ( add_image_size), o por un complemento o su propio código personalizado, se agrega al $_wp_additional_image_sizesglobal, no puedo encontrar una función similar para extraer datos de ese global, pero ciertamente podría simplemente mirar dentro el global para determinar qué ancho y alto tiene el tamaño de una imagen registrada.

Ejemplo:

global $_wp_additional_image_sizes;
// Output width
echo $_wp_additional_image_sizes['post_thumbnail']['width'];
// Output height
echo $_wp_additional_image_sizes['post_thumbnail']['height'];

Por supuesto, solo asegúrese de hacer referencia a esos valores en un punto después de haber establecido el tamaño. Entonces, si por ejemplo está configurando el tamaño de la miniatura durante el inicio, deberá asegurarse de hacer lo que sea necesario después de ese punto (de lo contrario, recuperará los tamaños como estaban antes de configurarlos).

Espero que ayude.

t31os
fuente
Parece ser en post-thumbnaillugar de post_thubmnail(WP3.6)
user2019515
15

Sin embargo, hay otra forma:

get_option( 'thumbnail_size_w' );
get_option( 'thumbnail_size_h' );

Nota: thumbnailes uno de los tamaños establecidos en el interior $_wp_additional_image_sizes. Por lo tanto, la llamada a get_option()funcionará para cualquier otro tamaño de imagen también.

marca
fuente
44
Esta es realmente la mejor opción porque el complemento puede ejecutar sus ganchos en él.
fuxia
1
Es por eso que me sorprende que aún no se haya mencionado.
Mark
1

Tenga en cuenta que esto global $_wp_additional_image_sizes; podría no funcionar como se esperaba. Por ejemplo, cuando se usa está en el complemento, no devolverá los tamaños adicionales que los Temas hayan registrado.

eeMZee
fuente
Lo hará si realiza la llamada más tarde en la secuencia de acción, es decir. Si el tema registra los tamaños en la acción de inicio, su llamada debe realizarse después de que haya ocurrido esa acción.
t31os
1

Lo único que falta es la identificación 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];
Alexander Poslavsky
fuente
-1

Lo que necesita es esta función: wp_get_attachment_image_src

Códice: http://codex.wordpress.org/Function_Reference/wp_get_attachment_image_src

Devolverá una matriz que contiene la url, el ancho y la altura del archivo adjunto.

Mihael
fuente
1
Sí, pero espera una identificación para una imagen determinada, el usuario no tiene que pasar una identificación, quiere averiguar el tamaño registrado por nombre, por ejemplo. miniatura (post_thumbnail).
t31os
-1

Además de la publicación anterior:

$attachment = wp_get_attachment_image_src( $attachment_id ); // where $attachment_id is the ID of the attachment you want to get the thumbnail from

Luego, simplemente use el siguiente código para mostrar la url, el ancho y la altura:

echo $attachment[0]; // url
echo $attachment[1]; // width
echo $attachment[2]; // height
Gerben Van Dijk
fuente