media_sideload_image()
Загружает картинку в медиатеку WP из указанного УРЛ и прикрепляет её к посту.
Другими словами, функция загружает изображение с внешнего URL в медиатеку WP, прикрепляет его к указанной записи и возвращает <img> или УРЛ загруженной картинки.
Для работы функции во Фронт-энде нужны файлы:
require_once ABSPATH . 'wp-admin/includes/media.php'; require_once ABSPATH . 'wp-admin/includes/file.php'; require_once ABSPATH . 'wp-admin/includes/image.php';
Если нужно загрузить любой тип файла (а не только картинку), используйте аналогичную функцию: media_handle_sideload().
Хуки из функции
Возвращает
Строку|int|WP_Error
.
строку
- HTML img тега, когда $return = html (по уомолчанию).строку
- URL загруженного вложения, когда $return = src.число
- ID загруженного вложения, когда $return = id.- WP_Error - объект ошибки, с сообщением ошибке.
Использование
media_sideload_image( $file, $post_id, $desc, $return_type );
- $file(строка) (обязательный)
- УРЛ картинки которую нужно загрузить.
- $post_id(число) (обязательный)
- ID записи с которой будет связан загруженный в медиатеку файл-картинка.
0
— не прикреплять. - $desc(строка|null)
Заголовок картинки. Если не указать, заголовок будет взят из URL или из метаданных картинки.
Заметка: Этот параметр на самом деле устанавливает "TITLE" вложения, а не описание "DESCRIPTION". Нет возможности указать реальное описание для вложения с помощью этой функции.
По умолчанию: null
- $return(строка)
Что возвращать. Может быть:
html
- IMG тег картинкиsrc
- просто URLid
- ID вложения. С WP 4.8
По умолчанию: 'html'
Примеры
#1 Загрузим файл для поста из внешнего УРЛ
// когда мы во фронте require_once ABSPATH . 'wp-admin/includes/media.php'; require_once ABSPATH . 'wp-admin/includes/file.php'; require_once ABSPATH . 'wp-admin/includes/image.php'; $url = 'http://s.w.org/style/images/wp-header-logo.png'; $post_id = 3061; $desc = "Логотип WordPress"; $img_tag = media_sideload_image( $url, $post_id, $desc ); if( is_wp_error($img_tag) ){ echo $img_tag->get_error_message(); } else { // добавлено }
Такой же пример, но в другом исполнении показан в описании функции media_handle_sideload() - пример 1.
Список изменений
С версии 2.6.0 | Введена. |
С версии 4.2.0 | Introduced the $return_type parameter. |
С версии 4.8.0 | Introduced the 'id' option for the $return_type parameter. |
С версии 5.3.0 | The $post_id parameter was made optional. |
С версии 5.4.0 | The original URL of the attachment is stored in the _source_url post meta value. |
С версии 5.8.0 | Added 'webp' to the default list of allowed file extensions. |