Como você obtém o tamanho da miniatura da postagem?

13

Sei como definir o tamanho de uma imagem em miniatura da postagem usando as Configurações de mídia administrativa do WP ou usando esta função :

set_post_thumbnail_size( 150, 150 )

Mas como obter a largura e a altura da imagem definidas para um tamanho de miniatura da imagem?

Eu gostaria de poder fazer algo assim:

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

Como isso seria feito? É usando get_option(), e as teclas de opções seriam para largura e altura da miniatura?

mikkelbreum
fonte

Respostas:

8

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_sizesglobal, não consigo encontrar uma função semelhante para extrair dados desse global, mas você pode simplesmente olhar para dentro o global para determinar qual largura e altura tem um tamanho de imagem registrado.

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 que 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, precisará fazer o que for necessário após esse ponto (caso contrário, você receberá os tamanhos como antes de defini-los).

Espero que ajude.

t31os
fonte
Parece ser post-thumbnail, em vez de post_thubmnail(WP3.6)
user2019515
15

Existe, no entanto, outra maneira:

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

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

Marca
fonte
4
Esta é realmente a melhor opção, porque o plug-in pode funcionar nele.
fuxia
1
É por isso que estou surpreso que ainda não tenha sido mencionado.
Mark
1

Lembre-se de que isso global $_wp_additional_image_sizes; pode não funcionar conforme o esperado. Por exemplo, ao usar o plugin, ele não retornará os tamanhos adicionais que os Temas registraram.

eeMZee
fonte
Será se você fizer a ligação mais tarde na sequência de ações, ou seja. se o tema registrar os tamanhos na ação init, sua chamada deverá ser feita após a ocorrência dessa ação.
T31os
1

A única coisa que falta é o 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];
Alexander Poslavsky
fonte
-1

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

Codex: http://codex.wordpress.org/Function_Reference/wp_get_attachment_image_src

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

Mihael
fonte
1
Sim, mas espera um ID para uma determinada imagem, o usuário não tem um ID para passar, ele deseja descobrir o tamanho registrado pelo nome, por exemplo. miniatura (post_thumbnail).
T31os
-1

Além da postagem 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 a URL, largura e altura:

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