Загрузка файлов с помощью AJAX в WordPress

Опубликовано: 18.10.2017

видео Загрузка файлов с помощью AJAX в WordPress

JavaScript - Загрузка файлов на сервер с помощью AJAX

Загрузка файлов для плагина WordPress — не самая простая задача. Необходимо предоставить пользователю простой и понятный интерфейс, а также правильно обрабатывать загружаемые файлы, чтобы не создавать уязвимости.


Как создать форму с загрузкой файла?

Для того, чтобы не писать полностью собственный загрузчик файлов, мы будем использовать функционал WordPress, а именно файл async-upload.php , расположенный в папке wp-admin .

Используя этот файл мы получаем ряд преимуществ. Во-первых это стандартный файл для загрузки медиа файлов в WordPress, таким образом мы можем быть уверены в том, что код работает правильно. Так же в этом файле проводятся все необходимые проверки прав доступа и нам не придется делать это самостоятельно.

Требования

Чтобы использовать файл async-upload.php нужно следовать следующим правилам.

Атрибут name поля для загрузки файла должен быть async-upload Защитный ключ, который мы отправляем в AJAX запросе , должен использовать стандартное имя _wpnonce , а значение его — результат работы функции  wp_create_nonce(‘media-form’) В AJAX запросе мы должны отправить ключ action со значением  upload-attachment , таким образом будет вызвана нужная нам функция  wp_ajax_upload_attachment

Если мы будем следовать этим правилам, WordPress сможет корректно обработать наш AJAX запрос.

Плагин

Лучший способ продемонстрировать возможность загрузки файлов в WordPress — создать плагин . Мы создадим простой плагин, который позволяет зарегистрированным пользователям загружать изображения.

Так как цель этой статьи — демонстрация загрузки файлов с помощью AJAX, функционал плагина будет довольно скромным, наш плагин будет:

rss