Как получить 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];
     

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

    Ваш ответ

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