Получить загруженный URL-адрес изображения

Я работаю над плагином, который создает информационный бюллетень, который использует шаблон с несколькими изображениями.

Изображения загружены с использованием медиа-библиотеки ( uploads/current_year/current_month/ ), и я хочу получить URL-адрес изображений, используя имя изображения.

Любой способ сделать это без повторения всех изображений?

Я попытался сохранить изображения в папке плагина, но веб-сайт использует https, и это местоположение недоступно без аутентификации.

Любые предложения по разному расположению для хранения изображений?

Solutions Collecting From Web of "Получить загруженный URL-адрес изображения"

Я думаю, вы должны запустить пользовательский запрос mySQL в таблицу wp_posts, что-то вроде –

 SELECT ID FROM `wp_posts` where guid like '%filename.jpg'; 

(конечно, используйте объект $ wpdb для запроса базы данных). Затем у вас будет postid этого файла вложения, и вы можете использовать wp_get_attachment_url () из WP API.

wp_upload_dir() отлично. Это единственное место, где вы можете ожидать разрешения на запись.

Сохраните идентификатор вложения, а не путь. Затем вы получите изображение с помощью:

 wp_get_attachment_url( $attach_id ) 

Иногда пользователь может удалить изображение на медиа-библиотеку. Чтобы избежать проблем с отсутствующими файлами, сначала проверьте возвращаемое значение из wp_get_attachment_url() . Выдержка из одного из моих плагинов:

 /** * Returns image markup. * Empty string if there is no image. * * @param int $attach_id * @return string */ protected function get_image_tag( $attach_id ) { $img_url = (string) wp_get_attachment_url( $attach_id ); if ( '' == $img_url ) { return ''; } $img = "<img src='$img_url' alt='' width='$this->width' height='$this->height'>"; return $img; }