Imagen destacada con la misma altura que los pulgares devuelve el pulgar incorrecto

4

Tengo pulgares de 2 tamaños para imágenes destacadas con la misma altura:

  • 300 x 200
  • 540 x 200

He comprobado la carpeta de subidas y los dos pulgares con diferentes tamaños aparecen correctamente:

  • nombre_archivo-300x200.jpg
  • nombre_archivo-540x200.jpg

Estoy intentando obtener el tamaño de pulgar más grande (540x200) de la siguiente manera:

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

Sin embargo, el marcado de imagen que se devuelve es para el pulgar más pequeño (300x200). Curiosamente, la clase se muestra con los dominios correctos 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" />

Realmente apreciaría si alguien pudiera explicar lo que está sucediendo y por qué no se devuelve el tamaño correcto.

Muchas gracias, Dasha

    
pregunta dashaluna 17.05.2011 - 20:53

1 respuesta

2

Creo que has golpeado un problema lógico interesante en image_get_intermediate_size() . Esta función recorre las imágenes disponibles e intenta encontrar la mejor coincidencia posible para las dimensiones personalizadas que proporcionó.

Primero intenta encontrar la imagen según el comentario en el código:

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

¿Ver el problema? No la imagen, que coincida perfectamente con las dimensiones, pero la imagen que coincida en anchura o altura, con la dimensión restante más pequeña o igual a la requerida para que quepan las dimensiones.

Entonces, su imagen de 300 × 200 tiene la misma altura y se ajusta a la dimensión de 540 × 200 que desea (y probablemente viene antes en los metadatos), por lo que WP la toma para usarla.

  

Curiosamente, la clase se muestra con el correcto ...

No hay misterio allí, la clase simplemente se genera a partir de su entrada, sin importar si los valores tienen sentido y / o están disponibles.

    
respondido por el Rarst 31.05.2011 - 01:42

Lea otras preguntas en las etiquetas