Загрузка файлов с помощью AJAX в WordPress
Опубликовано: 12.04.2018
Загрузка файлов для плагина WordPress — не самая простая задача. Необходимо предоставить пользователю простой и понятный интерфейс, а также правильно обрабатывать загружаемые файлы, чтобы не создавать уязвимости.
Для того, чтобы не писать полностью собственный загрузчик файлов, мы будем использовать функционал WordPress, а именно файл async-upload.php , расположенный в папке wp-admin .
Используя этот файл мы получаем ряд преимуществ. Во-первых это стандартный файл для загрузки медиа файлов в WordPress, таким образом мы можем быть уверены в том, что код работает правильно. Так же в этом файле проводятся все необходимые проверки прав доступа и нам не придется делать это самостоятельно.
Контактная форма с загрузкой файла на Wordpress с плагином Ajax Simply своими руками любой сложности
Требования
Чтобы использовать файл 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, функционал плагина будет довольно скромным, наш плагин будет: