WordPress Custom Endpoint остальные API (метод сообщения) не работает - PullRequest
0 голосов
/ 20 ноября 2018

Это моя пользовательская конечная точка, но там написано "Не найдено ни одного маршрута, соответствующего URL и методу запроса", я добавил в папку theme.php папки темы.когда я изменил метод 'POST' на 'GET', он прекрасно работает для метода get .htaccess файл в порядке, любой другой плагин, например securty или другой плагин api rest не установлен, только "WP REST API plugin" активирован

add_action( 'rest_api_init', 'myfunction' );
function myfunction() {
register_rest_route( 'app', '/addmeta', array(
    'methods'  => 'POST',
    'callback' => 'vendor_serve_route'
) );
}

function vendor_serve_route(WP_REST_Request $request_data ) {
// Fetching values from API
$data = $request_data->get_params();`enter code here`
$user_data = array( 'user_login'     => $data['first_name'],
                    'user_email'     => $data['user_email'],
                    'nickname'       => $data['user_name'],
                    'first_name'     => $data['first_name'],
                    'last_name'      => $data['last_name'],

                    );


 return ['Data' => $user_data];


 }

1 Ответ

0 голосов
/ 20 ноября 2018

Уже указано в комментариях, но теперь с чуть более подробным объяснением:

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

Этот код создаст конечную точку, которая принимает POST запросов на YOUR_DOMAIN/wp-json/app/addmeta.

Не рекомендуется добавлять большой объем кода в файл functions.php, так как он станет действительно большим и сложным в обслуживании.

Вы должны создать плагин (это действительно простой процесс) для этого и поместить туда новый код.Таким образом, он изолирован, и вы можете легко использовать его в других приложениях.

Чтобы создать плагин, вам необходимо:

  • Создать новый каталог под /plugins для вашего плагина.
  • Создайте файл .php в этом каталоге с тем же именем, что и каталог
  • Включите заголовочный комментарий в этот основной файл, который описывает ваш плагин

Пример:

  • Каталог: .../plugins/my-api-endpoints
  • Файл: my-api-endpoints.php

А затем включить комментарий в файл:

<?php
/**
 * Plugin Name: My API Endpoints
 * Plugin URI: 
 * Description: This plugins handles the submissions for my API.
 * Version: 0.1
 * Author: John Doe
 * Author URI: http://johndoe
 */

your code here...

Прочитайте это и это для получения дополнительной информации о создании плагинов.Это поможет вам начать.

...