I have the URL of an image which I know is an attachment. Now, I need to find out the attachment ID.
This is what I've got (thanks to PippinsPlugins):
// retrieves the attachment ID from the file URL
function pippin_get_image_id($image_url) {
global $wpdb;
$attachment = $wpdb->get_col($wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE guid='%s';", $image_url ));
return $attachment[0];
}
This works fine for an URL like this: .png
My problem is, the URL is the URL of a cropped picture, so it is .png
My next problem is right now, I can't simply explode the URL to remove 300x297, since I might have pictures, which are not cropped but might have a file name like 'picture2-dontexplodeme.png'
Basically, I need a fool proof solution haha. If there is anyone out there, who has an easy solution, I would be very happy :)
This question already has answers here: Turn a URL into an Attachment / Post ID (6 answers) Closed 10 years ago.I have the URL of an image which I know is an attachment. Now, I need to find out the attachment ID.
This is what I've got (thanks to PippinsPlugins):
// retrieves the attachment ID from the file URL
function pippin_get_image_id($image_url) {
global $wpdb;
$attachment = $wpdb->get_col($wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE guid='%s';", $image_url ));
return $attachment[0];
}
This works fine for an URL like this: http://example/wp-content/uploads/2015/03/picture.png
My problem is, the URL is the URL of a cropped picture, so it is http://example/wp-content/uploads/2015/03/picture-300x297.png
My next problem is right now, I can't simply explode the URL to remove 300x297, since I might have pictures, which are not cropped but might have a file name like 'picture2-dontexplodeme.png'
Basically, I need a fool proof solution haha. If there is anyone out there, who has an easy solution, I would be very happy :)
Share Improve this question asked Apr 13, 2015 at 17:06 websupporterwebsupporter 3,0192 gold badges20 silver badges19 bronze badges 4 |1 Answer
Reset to default 2function get_attachment_id_from_src ($image_src) {
global $wpdb;
$query = "SELECT ID FROM {$wpdb->posts} WHERE guid='$image_src'";
$id = $wpdb->get_var($query);
return $id;
}
wp-image-123
, indicating the attachment ID. If the images are inserted automatically elsewhere in the theme, could you add a CSS class or a data attribute containing the ID? – William Turrell Commented Apr 13, 2015 at 17:49attachment_url_to_postid()
– JakeParis Commented Sep 13, 2022 at 18:13