Wordpress Rest API 在自定义端点上使用 POST 更新内容



我正在为帖子类型帖子创建自定义端点。 来自Javascript的请求工作正常,但无法理解如何更新,例如,帖子的内容。

我已经创建并注册了一个路由,我为一个路由创建了一个回调函数,并且我创建了一个插入帖子 ID 和内容的小表单。

这是路由的代码

add_action('rest_api_init', function() {
register_rest_route('wl/v1', 'postsAdd/(?P<id>d+)', [
'methods' => 'POST',
'callback' =>'wl_post_write',
]);
})

这是回调函数

function wl_post_write( $request ) {
$parameters = $request->get_params();
return $parameters;
}

来自javascript的XMLHTTPRrequest是

var ourPostData = {
"content": content
}
var updatePost = new XMLHttpRequest(); 
updatePost.open("Post", mySiteData.siteURL + '/wp-json/wl/v1/postsAdd/'+id+'/?post_type=post');
updatePost.setRequestHeader("X-WP-Nonce", mySiteData.nonce);
updatePost.setRequestHeader("Content-Type","application/json;charset=UTF-8");
updatePost.send( JSON.stringify(ourPostData) );
console.log(updatePost.responseText);

变量"content"和"id"是我在表单字段中写入的值。

响应文本的控制台.log为:

{"id":"51","post_type":"post","content":"my new post content"}

上面的代码返回了我随请求一起发送的正确参数,但这不会更新 id 为 51 的帖子中的内容。

我不明白如何更新它。

多谢

您需要通过请求传递授权。参考此线程以使用 POST 方法为自定义 rest 端点传递正确的授权:使用 Wordpress Rest API JS 填充 ACF 字段

谢谢

最新更新