Imagem em destaque com a mesma altura que os polegares retornam polegar errado

4

Eu tenho dois polegares de tamanhos para imagens em destaque com a mesma altura:

  • 300 x 200
  • 540 x 200

Eu verifiquei a pasta de uploads e os dois polegares com tamanhos diferentes aparecem corretamente:

  • file_name-300x200.jpg
  • file_name-540x200.jpg

Estou tentando obter o tamanho maior do polegar (540x200) da seguinte forma:

$width = 540;
$height = 200;
echo get_the_post_thumbnail( $post->ID, array($width,$height) );

No entanto, a marcação de imagem retornada é para o thumb zise menor (300x200). Curiosamente, a classe é exibida com os domantions corretos como 'attachment-540x200':

<img width="300" height="200" src="http://mysite.com/wp-content/uploads/file_name-300x200.jpg"class="attachment-540x200 wp-post-image" alt="file_name" title="file_name" />

Agradeceria muito se alguém pudesse explicar o que está acontecendo e por que o polegar de tamanho correto não é retornado.

Muito obrigado, Dasha

    
por dashaluna 17.05.2011 / 20:53

1 resposta

2

Acho que você encontrou um problema de lógica interessante em image_get_intermediate_size() . Essa função percorre as imagens disponíveis e tenta encontrar a melhor correspondência possível para as dimensões personalizadas fornecidas por você.

Primeiro, tenta encontrar a imagem conforme o comentário no código:

// already cropped to width or height; so use this size

Veja o problema? Não imagem, dimensões perfeitamente correspondentes, mas imagem que corresponda em largura ou altura, sendo a dimensão restante menor ou igual ao tamanho necessário para se ajustar às dimensões.

Portanto, a sua imagem de 300 × 200 tem a mesma altura e cabe dentro da dimensão de 540 × 200 que você deseja (e provavelmente vem mais cedo em metadados) para que o WP aproveite isso com prazer.

  

Curiosamente, a classe é exibida com o correto ...

Não há mistério aí, a classe é simplesmente gerada a partir de sua entrada, sem considerar se os valores fazem sentido e / ou estão disponíveis.

    
por Rarst 31.05.2011 / 01:42