Obtém o tamanho da miniatura da postagem

11

Eu sei como definir o tamanho de um tipo de imagem:

set_post_thumbnail_size( 150, 150 )

.. ou usando as configurações de mídia, mas como obtenho a imagem com a altura da imagem que foi definida para um tamanho de imagem?

Eu gostaria de algo como:

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

como isso deve ser feito? É usando get_option (), e quais seriam as teclas de opções para largura e altura de miniaturas?

    
por mikkelbreum 14.12.2011 / 22:59

7 respostas

7

Quando um tamanho de imagem é adicionado pelo WordPress ( add_image_size ), ou por um plug-in ou seu próprio código personalizado, ele é adicionado ao $_wp_additional_image_sizes global, não consigo encontrar uma função semelhante para extrair dados desse global, mas você pode certamente olhar dentro do global para determinar a largura e a altura que um tamanho de imagem registrado tem.

Exemplo:

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'];

Claro, não se esqueça de referenciar esses valores em um ponto depois de definir o tamanho. Portanto, se, por exemplo, você estiver definindo o tamanho da miniatura durante o init, será necessário fazer o que for necessário depois desse ponto (senão você recuperará os tamanhos como estavam antes de configurá-los).

Espero que ajude.

    
por t31os 15.12.2011 / 14:54
15

Existe, no entanto, outra maneira:

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

Nota: thumbnail é um dos tamanhos definidos dentro de $_wp_additional_image_sizes . Portanto, a chamada para get_option() também funcionará para todos os outros tamanhos de imagem.

    
por Mark 10.02.2012 / 09:43
2

Como complemento do porquê é tão difícil recuperar esses números, um encanto principal que contém um patch finalizado. Infelizmente ainda não está no núcleo.

Basta seguir o progresso deste ticket: Wordpress Trac: Enchance get_intermediate_image_sizes() para conter não apenas os nomes, mas também os tamanhos também.

    
por kaiser 10.02.2012 / 15:42
1

Lembre-se de que esse global $_wp_additional_image_sizes; pode não funcionar como esperado. Por exemplo, quando estiver usando o plugin, ele não retornará os tamanhos adicionais que um Temas registrou.

    
por eeMZee 26.01.2012 / 22:37
1

A única coisa que ainda falta é a ID da 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];
    
por Alexander Poslavsky 20.07.2012 / 15:33
-1

O que você precisa é esta função: wp_get_attachment_image_src

Codex: enlace

Ele retornará uma matriz contendo a URL, a largura e a altura do anexo.

    
por Mihael 14.12.2011 / 23:32
-1

Além do post acima:

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

Em seguida, basta usar o próximo código para exibir o URL, a largura e a altura:

echo $attachment[0]; // url
echo $attachment[1]; // width
echo $attachment[2]; // height
    
por Gerben Van Dijk 15.12.2011 / 11:18