Описание функции media_sideload_image()
Функция media_sideload_image() позволяет загружать изображения из внешних источников (URL) и автоматически добавлять их в медиабиблиотеку WordPress. Эта функция полезна для автоматизации загрузки изображений в записи и страницы, а также для работы с внешними ресурсами.
Функция возвращает HTML-код для вставки изображения и может использоваться в контексте обработки форм или плагинов.
Параметры
$file
Тип: string
Обязательный: Да
Описание: URL изображения, которое нужно загрузить
Возможные значения:
$post_id
Тип: int
Обязательный: Нет
Описание: ID записи, к которой будет привязано загруженное изображение
Возможные значения:
$desc
Тип: string
Обязательный: Нет
Описание: Описание изображения, которое будет установлено в медиабиблиотеке
Возможные значения:
Возвращаемое значение
Тип: string
Описание: HTML-код для вставки загруженного изображения
Возможные значения:
• HTML-код изображения при успешной загрузке
• WP_Error в случае ошибки
Примеры использования
Базовый пример загрузки изображения
$image_html = media_sideload_image('https://example.com/image.jpg', 0);
if (is_wp_error($image_html)) {
echo 'Ошибка загрузки: ' . $image_html->get_error_message();
} else {
echo $image_html;
}
Отобразит HTML-код изображения или сообщение об ошибке
Загрузка изображения с привязкой к записи
$image_html = media_sideload_image('https://example.com/image.jpg', 123, 'Описание изображения');
if (is_wp_error($image_html)) {
echo 'Ошибка загрузки: ' . $image_html->get_error_message();
} else {
echo $image_html;
}
Изображение будет привязано к записи с ID 123
Безопасность
Валидация входных данных: Функция проверяет правильность URL и существование записи
Санитизация: Входящие данные очищаются перед использованием
Рекомендации: Используйте esc_html() и esc_url() при выводе данных
— Связанные функции
Вставляет вложение в медиабиблиотеку
Получает URL вложения по ID
— Примечания
– Ограничения
Не работает с изображениями, требующими аутентификации для доступа
– Частые проблемы
- Ошибка при некорректном URL
- Неудачная загрузка из-за проблем с сервером