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 согласно всем канонам безопасности платформы.