Hi I’m using some code to create a slideshow with lytebox functionality – the following code is used in the loop to pull each image attached to a post in sequence.
It seems to be only pulling the large image, even thought I’ve set the value to medium – any ideas how I can get .wp_get_attachment_url($attachment->ID, ‘medium’, false, false) to be pulling the medium sized images?
thanks
<?php
$argsThumb = array(
'order' => 'DESC',
'post_type' => 'attachment',
'post_parent' => $post->ID,
'post_mime_type' => 'image',
'post_status' => null
);
$attachments = get_posts($argsThumb);
if ($attachments) {
foreach ($attachments as $attachment) {
echo '<div class="images"><a class="lytebox" href="' .wp_get_attachment_url($attachment->ID, 'medium', false, false). '" rel="nofollow noreferrer noopener"><img src="'.wp_get_attachment_url($attachment->ID, 'medium', false, false).'" /><div class="caption">'.apply_filters('the_content', $attachment->post_content).'</div></a></div>';
}
}
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
wp_get_attachment_url() will only return url to original attachment file, this function only accepts attachment id as parameter.
Use wp_get_attachment_image_src() or wp_get_attachment_image() instead.
Method 2
echo out the following: wp_get_attachment_image_src( $post->ID, 'medium')[0]; to the attachment url for the medium sized image.
Method 3
Update for those finding this all these years later. The function you want is called wp_get_attachment_image_url(). Documentation here.
All you need to do is give it the attachment ID and the size and it will return either a string of the image url or false.
Method 4
I don’t how above answer makes the answer.
wp_get_attachment_image_src need attachment id not post id.
<?php echo esc_url((wp_get_attachment_image_src( get_post_thumbnail_id(get_the_id()), 'medium')[0])?>
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0