Документация WordPress

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

upload