WordPress自定义端点Rest API(发布方法)不起作用

时间:2018-11-20 14:24:00

标签: wordpress wordpress-rest-api

这是我的自定义终点,但提示 “找不到与URL和请求方法匹配的路由” 我在主题文件夹中添加了function.php文件。 当我将方法“ POST”更改为“ GET”时,它对于get方法工作正常 .htaccess文件可以安装任何其他未安装的插件,如安全性或其他rest api插件 只有“ WP REST API插件”被激活

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 :(得分:0)

已在评论中说明,但现在有了更多解释:

该代码似乎可以创建一个端点,因此对端点的请求应该是错误的。问题在于您只是在更改端点的HTTP方法,而不是更改对端点的实际请求的HTTP方法。

此代码将创建一个端点,该端点接受对POST的{​​{1}}请求。

YOUR_DOMAIN/wp-json/app/addmeta文件中添加很多代码不是一个好习惯,因为它将变得非常庞大且难以维护。

您应该为此创建一个插件(这是一个非常简单的过程),然后在其中放置新代码。这样,它是孤立的,您甚至可以轻松地在其他应用中重用它。

要创建插件,您需要:

  • functions.php下为您的插件创建一个新目录
  • 在该目录中创建一个与目录相同名称的/plugins文件
  • 在该主文件中包含描述您的插件的标题注释

示例:

  • 目录:.php
  • 文件:.../plugins/my-api-endpoints

然后在文件中添加注释:

my-api-endpoints.php

阅读thisthis以获得有关创建插件的更多信息。它会帮助您入门。