Intereting Posts
Сортировка и ограничение с помощью pre_get_posts Изменить страницу WP-Login с помощью Javascript? Meta_query 'compare' => 'LIKE' не работает? Как добавить пользовательские ссылки на страницу типа архива в навигационное меню? Отключить обновление базы данных? сломать мой сайт wp_update_post через ajax из интерфейса Требуется небольшое кодирование с помощью пользовательских полей Заголовки заголовков темы и изображения ротатора, не назначенные после миграции веб-сайта Тип пользовательского сообщения WordPress разделен на страницы Скрыть старые вложения из wp media library Могу ли я использовать разные разделы настроек на разных страницах, используя группу параметров сохранения? Как включить разрывы строк в файле_excerpt? Как я могу скрыть термин категории для сообщений без каких-либо заданий? WP-ADMIN – перечисление всех CPT в списке «сообщений» Почему дополнительные пользовательские поля не перенаправляются при отправке формы?

Лучший способ получить данные в пользовательском api, расширенном из wp-api

Я расширил WP API- плагин, чтобы предоставить API, который может обрабатывать документы.

Маршруты

public function register_routes($routes) { $documents_routes = array( '/v1/documents' => array( array(array($this, 'create_document'), WP_JSON_Server::CREATABLE), ) ); $new_routes = array_merge($routes, $documents_routes); return $new_routes; } 

функция обратного вызова

 public function create_document($data, $_files = null){ if(!empty($_files)) { // process file } // how to retrieve } 

Запрос

 POST /api/v1/documents/ HTTP/1.1 Host: localhost Cache-Control: no-cache Postman-Token: d5277e1c-12ac-309a-034f-135173b7c7f2 Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW ----WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="doc_id" 3268360 ----WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="file"; filename="PINS REST API Documentation v1.2.doc" Content-Type: application/msword ----WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="case_reference" EN0102234 ----WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="author" Ghazanfar ----WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="stage" 1 ----WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="category" Application ----WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="type" Document ----WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="description" This is test document ----WebKitFormBoundary7MA4YWxkTrZu0gW 

Проблема

У меня есть некоторые свойства, такие как doc_id, case_reference, description, author, size и т. Д., Которые будут переданы в api вместе с файлом.

Теперь проблема в том, что я хочу, чтобы иметь возможность извлекать все данные, если тип контента: используются данные формы. Каков наилучший способ эффективного извлечения всех переданных данных в функции обратного вызова?

Нашел ответ на мой вопрос.

Я не хотел указывать каждый параметр данных в определении функции, поскольку он может затянуться. Поэтому я извлекаю их с помощью глобальной переменной $_POST .

Я знаю, что это нехорошее решение, если вы знаете, что лучше, дайте мне знать.

 public function create_document($_files = null){ if(!empty($_files)) { // process file } $data = $_POST; // process $data is you want // $data['doc_id'] // $data['case_reference'] ..... ..... }