web-dev-qa-db-fra.com

wp_get_attachment_image_src retourne toujours une image en taille réelle

https://codex.wordpress.org/Function_Reference/wp_get_attachment_image_src#Parameters m'amène à croire que wp_get_attachment_image_src( $thumb_id, array(100, 100) )[0] renverrait une vignette 100x100, mais restitue toujours l'image en taille réelle.

Toute aide serait grandement appréciée.

6
corysimmons

Je pense que ce code va vous aider:

$src = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'full', false, '' ); echo '<img src="'.$src[0].'">';

2

... me conduit à croire que wp_get_attachment_image_src ($ thumb_id, array (100, 100)) [0] renverrait une vignette 100x100 ...

Ce n'est pas tout à fait ce qui se passe. La plupart du travail est effectué par image_downsize() comme vous pouvez le voir du haut de la wp_get_attachment_image_src():

692         // get a thumbnail or intermediate image if there is one
693         if ( $image = image_downsize($attachment_id, $size) )
694                 return $image;

Si vous regardez les notes pour cette fonction, vous verrez:

134  * The URL might be the original image, or it might be a resized version. This
135  * function won't create a new resized copy, it will just return an already
136  * resized one if it exists.

Ce que vous obtenez (presque comme je peux le dire) est la taille la plus proche de celle demandée avec un tableau contenant les dimensions de l’image demandée ou les dimensions réelles de l’image si la taille demandée est plus grande que la plus grande image. Vous êtes censé faire le reste avec HTML et CSS.

1
s_ha_dum

vous devez avoir des tailles d'image prédéfinies, WP 3 tailles par défaut: vignette 100x100, 300x300 moyen et 800x800, et j'ai une taille supplémentaire appelée img-polaroid 700x320 définie sur functions.ini.

Donc, le code pour obtenir des images est: $image_id=get_post_thumbnail_id(); $image_url = wp_get_attachment_image_src($image_id,'img-polaroid'); $image_url=$image_url[0];

'img-polaroid' est la 'taille de $' récupérée 700x320, et la façon d'imprimer l'image est la suivante: img src="php echo $image_url" class="img-polaroid" style="margin:5px 0px 15px;"

Où class = "img-polaroid" est la taille réelle à imprimer comme 100x100 ou 200x100 avec le style de photo polaroid défini sur les styles CSS; ou vous pouvez utiliser dans img code html heigh = 100 wight = 100 . avec les deux méthodes, l'image sera claire et bien définie. pour mes besoins, img-polaroid a une taille de 320x200 et est défini aussi comme taille sensible.

Si vous obtenez l'image $ image_url = wp_get_attachment_image_src ($ image_id, 'vignette'); et essaie d’imprimer sur une taille supérieure, l’image sera floue. ***

Essayez donc d’obtenir la taille de l’image la plus proche possible de la taille à imprimer pour ne pas surcharger votre page


0
Fernando Baltazar