wp_upload_bits() – загружает на сайт файлы, заданные в виде строки

Функция загружает файл с указанным содержимым в папку с загрузками. После завершения возвращает массив с информацией об этом файле.

Проводит все необходимые проверки на безопасность (тип файла, размер и т.д.).

wp_upload_bits( $name, $deprecated, $bits, $time = null )
$name
(строка) название файла, обязательно должно быть вместе с расширением
$deprecated
(null) параметр не используется, тем не менее всегда должен устанавливаться со значением null
$bit
(строка) содержимое файла в виде строки, это достигается php-функцией file_get_contents()
$time
(строка) время в формате ГГГГ/ММ, нужно только в том случае, если в настройках стоит галка «Помещать загруженные мной файлы в папки по месяцу и году».
В этом случае вы сами можете определить папку с месяцем, в которую следует поместить файл, по умолчанию – текущий месяц.

Пример 1

Возьмем к примеру URL какой-нибудь левой картинки из интернета, например пусть будет изображение из предыдущего поста https://misha.blog/images/2013/03/diff-table.png

$upload = wp_upload_bits( 'table.png', null, file_get_contents('https://misha.blog/images/2013/03/diff-table.png'));

Это может быть абсолютно любая картинка с любого сайта, если только у них картинки не закрыты через .htaccess.

Массив $upload будет выглядеть следующие образом:

print_r( $upload );
/*
Array ( 
[file] => /home/user/truemisha/public_html/wp-content/2013/03/table.png 
[url] => https://misha.blog/wp-content/uploads/2013/03/table.png 
[error] => 
)
*/

Теперь например можно вывести саму картинку:

<img src="<?php echo $upload['url'] ?>" />

Пример 2. Использование с формой

Предположим, пользователь загружает на сайт фото для своего профиля через форму. Результат также можно обработать через wp_upload_bits().

$upload = wp_upload_bits($_FILES["profile_photo"]["name"], null, file_get_contents($_FILES["profile_photo"]["tmp_name"]));
Миша Рудрастых Разработчик WordPress WooCommerce

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

Впервые познакомился с WordPress в 2009 году, и после двух лет мучений с Joomla и самописными движками это был просто бальзам на душу. С 2014 года меня можно встретить на WordCamp — официальной конфе по WP в Москве, иногда там выступаю. Также в настоящее время веду курсы по WordPress в Epic Skills в Питере.