media_sideload_image() — как загрузить изображение с внешнего URL на сайт через код

Эта функция делает три вещи:

  1. загружает изображение в папку uploads, при этом делая его доступным через админку,
  2. прикрепляет изображение к посту, ID которого указан в параметрах,
  3. возвращает результат либо в виде тега <img>, либо в виде URL уже загруженного изображения.
media_sideload_image( $file, $post_id, $desc = null, $return = 'html' )
$file
(строка) URL изображения для загрузки.
$post_id
(целое число) ID поста, к которому нужно прилепить изображение. 0 — не прилеплять.
$desc
(строка) То, что отправится в заголовок изображения. Если не указано, то заголовок будет взят либо из URL, либо из метаданных изображения.

Заголовок изображения
$return
(строка) Что нужно возвратить функции. Может принимать два значения:

  • src — URL изображения,
  • любая_строка (по умолчанию) — <img> тег.

Что делать, если:

Fatal error: Call to undefined function media_sideload_image() in ... on line 835

Это означает, что функция не определена, скорее всего вы использовали её где-то за пределами админки. Чтобы всё было ок, нужно подключить 3 файла дополнительно, подробнее в примере:

require_once(ABSPATH . 'wp-admin/includes/media.php');
require_once(ABSPATH . 'wp-admin/includes/file.php');
require_once(ABSPATH . 'wp-admin/includes/image.php');
 
$file = 'http://nelaprosto.ru/wp-content/uploads/2014/11/VTH8063dQ4U.jpg';
$post_id = 5;
 
$img_tag = media_sideload_image( $file, $post_id, 'Гек' );

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

Комментарии — 2

Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.

Миша Рудрастых и WordPress

Полезности из мира WordPress и жизни студии.

Мой телеграм-канал