Fonction pour récupérer l’url de n’importe qu’elle image d’un post
Dans WordPress 3.0, chaque article possède une galerie d’images gérable sur ce bouton :
depuis son article. Il est possible grâce à une petite fonction d’appeler n’importe qu’elle image présente dans la galerie. Chaque image uploadée sur WordPress peut-être suivant le besoin redimensionner par WordPress en plusieurs tailles : miniature, medium, original. Cela permet de créer des templates sur mesure.
La Fonction à copier dans fonction.php de son thème:
<?php
function bdw_get_images($iPostID,$num_img,$type_img) {
// Get the post ID
// Get images for this post
//$arrImages =& get_children('post_type=attachment&post_mime_type=image&post_parent=' . $iPostID );
$arrImages = get_children( array( 'post_parent' => $iPostID, 'post_type' => 'attachment', 'post_mime_type' => 'image', 'orderby' => 'menu_order', 'order' => 'ASC', 'numberposts' => 999 ) );
// If images exist for this page
if($arrImages) {
// Get array keys representing attached image numbers
$arrKeys = array_keys($arrImages);
// Get the image attachment with $num_img
$iNum = $arrKeys[$num_img];
// Get the thumbnail url for the attachment
if ($type_img == "small"){
$sThumbUrl = wp_get_attachment_thumb_url($iNum);
}
else{
if ($type_img == "medium"){
$sThumbUrl = wp_get_attachment_url($iNum, 'medium');
}
else{
$sThumbUrl = wp_get_attachment_url($iNum);
}
}
// UNCOMMENT THIS IF YOU WANT THE FULL SIZE IMAGE INSTEAD OF THE THUMBNAIL
//$sImageUrl = wp_get_attachment_url($iNum);
// Build the <img> string
// $sImgString = '<a href="' . get_permalink() . '">' .
// '<img src="' . $sThumbUrl . '" width="150" height="150" alt="Thumbnail Image" title="Thumbnail Image" />' .
// '</a>';
// Print the image
$sImgString = $sThumbUrl;
if ($sImgString == ""){
$sImgString = bloginfo('template_url')."/images/mon-image-par-defaut.png";
}
echo $sImgString;
}
else{
$sImgString = bloginfo('template_url')."/images/mon-image-par-defaut.png";
echo $sImgString;
}
}
?>
Appel de la fonction
bdw_get_images($iPostID,$num_img,$type_img)
$iPostID : identifiant de l’article.
$num_img : 0 pour la première image, 1 pour la deuxième, etc…
$type_img : small pour la miniature, medium pour la taille medium et big pour la taille original.
ex :
bdw_get_images(get_the_ID(),0,"small");
Comment et où l’utiliser ?
A utiliser dans la loop (boucle): (loop-index.php,loop-ma-categorie.php, single.php )
Pour une image :
<img src="<?php bdw_get_images(get_the_ID(),0,"small")?>" alt="" />
Dans un élément css :
<div style="width:200px;height:140px;background:url(<?php bdw_get_images(get_the_ID(),0,"small").''?>) no-repeat center center"></div>






Annuaire du webdesign en France
Blog Shane : graphisme & webdesign
Devheart : développement Logiciels
Fixie Factory : boutique en ligne & blog
Illusive Pixel : webdesign, graphisme
Megaptery : veille technologique et partage de ressources web
Xbition-art : webdesign, graphisme & css
Zdar.net : guide applications Iphones
Bonjour,
J’ai un soucis. Lorsqu’on change l’image dans l’article celui ci ne change pas avec la fonction. C’est l’ancienne image qui est affichée.
Avez-vous une solution?
merci.
Effectivement, après l’ajout d’une image dans l’article en question il est nécessaire de retourner sur image, puis galerie et redéfinir l’ordre d’affichage par glisser/déposer. On remarque après l’ajout d’une image que l’ordre n’est pas définit pour cette nouvelle image.
Merci beaucoup, ca m’a été très utile!
Bonjour, lorsque j’ajoute le code dans le fichier fonctions.php, j’ai un warning lorsque je change de page
Warning: Cannot modify header information – headers already sent by (output started at /home/XXXX/html/wp-content/themes/theme928/functions.php:32) in /home/XXXX/html/wp-includes/pluggable.php on line 897
Avez vous une idée ?
Bonjour, cela me semble bizarre, avez vous bien placer le code dans votre fichier functions.php sans altérer vos autres functions ?
oui, j’ai ajouter le code au tout début ou même tout à la fin … toujours le warning.
J’ai contourné le problème en utilisant un pluggin.
il faut que tu le place avant le dernier <?php cela devrait fonctionner..
Merci pour le code. Je vais essayer tout de suite
Merci beaucoup pour cette petite fonction qui correspond parfaitement à ce que je cherchais !
J’utilise cette fonction avec une autre que j’ai créé à laquelle je passe ne paramètres la largeur et la haute maximum que peut avoir l’image pour s’afficher correctement et j’obtiens en sortie le code html d’une image parfaite et prête à l’emploi !
Hello,
très utile ! est ce possible de l’utiliser en shortcode?!
Si oui, un conseil serait le bienvennu..
Merci à a vous,
Jess
bonjour,
j’ai un problème avec cette fontion : l’image que je souhaite s’affiche, malheureusement, la taille « medium » ne fonctionne pas, par contre small et big fonctionne… je ne sais pas d’où cela peut provenir, avez-vous une idée ?
merci d’avance !
En effet j’ai le même soucis que manue. Je récupère bien l’image mais elle ne prend pas la valeur medium alors que small et big fonctionnent.
Je rencontre un problème lorsque j’essaye d’appliquer la fonction comme sur l’exemple :
<img src=" » alt= »" />
Rien n’apparait ?
Vous avez une idée !!!
J’ai bien suivi les consignes à la lettre et pourtant rien du tout.