Как получить id медиафайла(Attachment ID) если известен url картинки?

Скажите как можно получить Attachment ID медиафайла если картинка была уже ранее загружена, и у нас есть только ее url. ID нужно для того что бы прикрепить данное изображение к посту, с помощью функции set_post_thumbnail($post_id, $attach_id);

Добавить Комментарий
Ответ

Для этого на сколько я знаю нет специальной функции.
Но решить проблему поможет следующий хак:

 // 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];
 }
 

Создадим функцию которая будет делать запрос к базе и получать id по url медиафайла.

Теперь вызовим функцию:

 // set the image url
 $image_url = 'http://yoursite.com/wp-content/uploads/2011/02/14/image_name.jpg';
// store the image ID in a var
 $image_id = pippin_get_image_id($image_url);
// retrieve the thumbnail size of our image
 $image_thumb = wp_get_attachment_image_src($image_id, 'thumbnail');
// display the image
 echo $image_thumb[0];
 

Добавить Комментарий

Ваш ответ

Размещая свой ответ, вы соглашаетесь с правилами сайта.