Manière correcte d’utiliser wp_get_attachment_image() dans wordpress
Je cherche la bonne façon d’utiliser wp_get_attachment_image().
Le code suivant :
<?php
$args = array(
'type' => 'attachment',
'category_name' => 'portfolio'
);
$attachments = get_posts($args);
print_r($attachments);
?>
Génère le résultat suivant :
Array
(
[0] => stdClass Object
(
[ID] => 54
[post_author] => 1
[post_date] => 2010-06-22 00:32:46
[post_date_gmt] => 2010-06-22 00:32:46
[post_content] => <a href="http://localhost/wordpress/wp-content/uploads/2010/06/Capture.jpg"><img class="alignnone size-medium wp-image-55" title="Capture" src="http://localhost/wordpress/wp-content/uploads/2010/06/Capture-300x114.jpg" alt="" width="300" height="114" /></a>
[post_title] => Our Own Site
[post_excerpt] =>
[post_status] => publish
[comment_status] => open
[ping_status] => open
[post_password] =>
[post_name] => our-own-site
[to_ping] =>
[pinged] =>
[post_modified] => 2010-06-22 00:40:22
[post_modified_gmt] => 2010-06-22 00:40:22
[post_content_filtered] =>
[post_parent] => 0
[guid] => http://localhost/wordpress/?p=54
[menu_order] => 0
[post_type] => post
[post_mime_type] =>
[comment_count] => 0
[filter] => raw
)
)
Ce qui suit, cependant, ne renvoie rien.
<?php
echo wp_get_attachment_image(54, array('300', '300'));
?>
Qu’est-ce que je fais de mal ici ?
Solution n°1 trouvée
La fonction wp_get_attachment_image
n’obtient qu’une image qui a été téléchargée sur wordpress, elle ne génère pas d’image dans le contenu du message.
Vous devez afficher le contenu de la publication pour votre exemple d’image.
Comme:echo $attachments['post_content'];
Solution n°2 trouvée
En fait, je ne pense pas que la réponse acceptée réponde vraiment à la question.
Votre problème est que vous transmettez l’ identifiant de publication ( 54
dans votre exemple, généralement $post->ID
dans le langage WP) à wp_get_attachment_image()
. Comme on peut le voir dans le codex, vous êtes censé utiliser l’ identifiant de pièce jointe (voir ci- $attachment_id
dessous):
wp_get_attachment_image( $attachment_id, $size, $icon );
En d’autres termes, vous devez faire quelque chose comme ceci :
$image_attr = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'medium');
Solution n°3 trouvée
La fonction wp_get_attachment_image peut accepter quatre valeurs comme vous pouvez le voir :
wp_get_attachment_image ( int $attachment_id, string|array $size = 'thumbnail', bool $icon = false, string|array $attr = '' )
Donc j’utilise toujours :
<?php echo wp_get_attachment_image( get_the_ID(), array('700', '600'), "", array( "class" => "img-responsive" ) ); ?>
Remarque : nous pouvons simplement utiliser get_the_ID() pour transmettre l’identifiant de la publication active. et ici 700 est la largeur et 600 est la hauteur de l’image de pièce jointe. nous pouvons également passer notre classe en tant que array( « class » => « img-responsive » )
0 commentaire