Как в вордпресс получить id картинки, зная ее url?

Я хочу реализовать замену картинок на миниатюры в контенте моих статей. У меня получилось спарсить адреса картинок и теперь мне нужно по адресу картинки получить ее ID, что бы в последствии из id получить все данные о картинки.

Проще говоря главная задача из url картинки получить ее id. При этом учитываю что адрес может быть не на картинку полного размера а на миниатюру, адреса на которые в базе вордпресс не хранятся.

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

Для получения id картинки по ее адерсу, воспользуйтесь следующей функцией:


function get_image_id($image_url) {

global $wpdb;
// Если нет url - вернем false

if ('' == $image_url)

return false;
// получим директорию загрузки

$upload_dir_paths = wp_upload_dir();

// удаляем лишнее из адреса картинки(например размеры миниатюры)

$image_url = preg_replace('/-\d+x\d+(?=\.(jpg|jpeg|png|gif)$)/i', '', trim($image_url));

// удаляем путь загрузки

$image_url = str_replace($upload_dir_paths['baseurl'] . '/', '', $image_url);

// поиск картинки в базе

$attachment = $wpdb->get_results("SELECT $wpdb->posts.ID FROM $wpdb->posts WHERE $wpdb->posts.guid LIKE '%{$image_url}';", ARRAY_N);
return (!empty($attachment[0][0])) ? $attachment[0][0] : false;

}

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

Ваш ответ

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