I am using the advanced custom fields plugin to upload images for an image gallery. I am attempting to retrieve the different sizes of images that are saved in the uploads folder and having problems.
$image = wp_get_attachment_image_src(get_sub_field('image'), 'full');
When I echo out the results of this I get nothing. I know that the images are being saved as different sizes because I can see them in the uploads folder and the get_sub_field('image') is returning the proper image src.
Is there anything else I need to do to get this to work?
I am using the advanced custom fields plugin to upload images for an image gallery. I am attempting to retrieve the different sizes of images that are saved in the uploads folder and having problems.
$image = wp_get_attachment_image_src(get_sub_field('image'), 'full');
When I echo out the results of this I get nothing. I know that the images are being saved as different sizes because I can see them in the uploads folder and the get_sub_field('image') is returning the proper image src.
Is there anything else I need to do to get this to work?
Share Improve this question asked Nov 27, 2011 at 15:56 pfuncpfunc 1371 gold badge1 silver badge5 bronze badges2 Answers
Reset to default 1What's in get_sub_field('image')? wp_get_attachment_image_src() parameter 1 should be the attachment id, not the attachment src, if that's what you have.
I use the following function to get an attachment ID from an image url as as far as I know WP doesn't have a method for this at present.
function get_attachment_id_from_src ($src) {
global $wpdb;
$reg = "/-[0-9]+x[0-9]+?.(jpg|jpeg|png|gif)$/i";
$src1 = preg_replace($reg,'',$src);
if($src1 != $src){
$ext = pathinfo($src, PATHINFO_EXTENSION);
$src = $src1 . '.' .$ext;
}
$query = "SELECT ID FROM {$wpdb->posts} WHERE guid='$src'";
$id = $wpdb->get_var($query);
return $id;
}
I can almost guarantee that you have the ACF field setting to return "Image URL" instead of "Image ID".
This was the case for me anyway. Once I switched the setting (below) to "Image ID", my problem was solved.