Função para obter o URL da imagem original carregada - tamanho grande

11

Atualmente, estou usando o seguinte código para obter o URL da imagem em destaque de um post do wordpress:

URL="<?php if (function_exists('wp_get_attachment_thumb_url')) {echo wp_get_attachment_thumb_url(get_post_thumbnail_id($post->ID), 'big-size'); }?>"

Mas o código retorna apenas a miniatura menor (150 x 150 pixels). Isto é o que eu recebo:

http://sitename.com/wp-content/uploads/imagename-150x150.png

Minha pergunta é: como faço para retornar o URL da imagem original (imagem em tamanho normal) que seria:

http://sitename.com/wp-content/uploads/imagename.png

Muito obrigado pelo seu tempo e ajuda.

theshorttree
fonte

Respostas:

27

Existem quatro tamanhos válidos incorporados ao núcleo do WordPress.

the_post_thumbnail('thumbnail');    // Thumbnail (default 150px x 150px max)
the_post_thumbnail('medium');       // Medium resolution (default 300px x 300px max)
the_post_thumbnail('medium_large'); // Medium Large resolution (default 768px x 0(means automatic height by ratio) max) since WP version 4.4
the_post_thumbnail('large');        // Large resolution (default 640px x 640px max)
the_post_thumbnail('full');         // Original image resolution (unmodified)

O último é o que você está procurando.

O seguinte retorna o URL.

<?php
  $src = wp_get_attachment_image_src( $attachment_id, $size, $icon );
  echo $src[0];

O código inteiro pode ser assim:

<?php
  $src = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'full', false );
  echo $src[0]; // the url of featured image

Mais informações podem ser encontradas aqui .

SLH
fonte
Obrigado pela sua resposta. Na verdade, estou procurando uma função para retornar o "URL" da imagem e não a imagem em si. Então, duvido que o post_thumbnail funcione para isso. Ou talvez eu esteja errado?
precisa
@theshorttree veja minha resposta atualizada.
SLH
Isso funcionou totalmente, muito obrigado pelo seu tempo e resposta!
precisa
1

Um pouco atrasado para a festa,

mas

get_the_post_thumbnail_url(null,'full'); realiza exatamente o trabalho, onde o total pode ser substituído por miniatura, média, média_ grande ou grande.

user206904
fonte
1

Para quem vem aqui após outubro de 2019

O WordPress introduziu um "Big Image Threshold" desde a versão 5.3 ( Link )

Em resumo, todas as imagens acima de 2560px serão redimensionadas no upload. Chamar o formato de imagem como "cheio" nem sempre retornará a imagem intocada original, mas poderá retornar a versão 2560px e terá '-caled' no URL e no caminho.

Você ainda pode obter o URL e o caminho das imagens originalmente carregadas com as seguintes funções: wp_get_original_image_path()ou wp_get_original_image_url(). Embora a documentação sugira que um novo tamanho "original_image"foi adicionado, wp_get_attachment_image, wp_get_attachment_image_src ou funções semelhantes ainda retornam a versão reduzida. Então, até onde eu sei, não há como obter as dimensões do arquivo original, etc.

Vinobe
fonte