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, 'Гек' );

Миша

В последние годы я долго не знал, что мне делать с сайтом misha.blog, ведь он практически не приносит никакого профита, но недавно я осознал, что моя миссия – способствовать распространению WordPress. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.

Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда сделаем вам всё на лучшем уровне.

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

Комментирование этого поста более не доступно.
  • Наталья 10 сентября 2015 #

    Если требуется перенести статью с картинками с самописного сайта на сайт вордпресс - этот способ подходит? Или речь идет о другом?

    • Миша 11 сентября 2015 #

      Думаю что перенести статью будет намного проще вручную.