media_handle_upload
media_handle_upload()
— это функция в WordPress, которая используется для обработки загруженных пользователем файлов и сохранения их в медиа-библиотеку Вордпресс.
Пример использования media_handle_upload()
:
В примере выше в коде мы проверяем, был ли загружен файл через форму с элементом <input type="file" name="file">
. Если файл был загружен, мы получаем его данные из $_FILES['file']
.
Затем мы вызываем media_handle_upload()
для обработки загрузки файла. Функция принимает несколько аргументов:
$file_id
: Имя элемента формы или индекс массива$_FILES
, содержащее данные о загруженном файле.$post_id
: ID записи, с которой связывается вложение. В данном случае используется 0, чтобы связать вложение с медиа-библиотекой, а не с определенной записью.$post_data
: Дополнительные данные для создания объекта записи (attachment post). В данном примере мы не передаем дополнительных данных.$overrides
: Параметры, переопределяющие поведение загрузки. В данном примере мы используемtest_form => false
, чтобы отключить проверку формы для аутентификации. Данный параметр необязателен.
$post_data
— дополнительные данные для создания объекта записи (attachment post). Ниже код из функции media_handle_upload()
в котором используется функция php array_merge
чтобы сшить массив данных. Вы можете указать в $post_data
данные которые будут добавлены в базу данных через функцию wp_insert_attachment()
.
После успешного выполнения media_handle_upload()
, она вернет идентификатор вложения (attachment ID) файла в медиабиблиотеке, то есть ID поста который будет внесем в базу данных WordPress. Если произошла ошибка, функция вернет объект WP_Error
.
Мы проверяем результат загрузки с помощью is_wp_error()
и выводим соответствующее сообщение об загрузке или ошибке.
media_handle_upload()
является удобным способом для обработки и сохранения загруженных файлов и вложений в WordPress согласно всем канонам безопасности платформы.