当前位置: 首页 > 知识库问答 >
问题:

Wordpress Rest Api在自定义endpoint上使用POST更新内容

况喜
2023-03-14

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

我已经创建并注册了一个路由,我为路由创建了一个回调函数,我还创建了一种小表单,在其中插入了post 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);

变量“内容”和“id”是我写在表单字段内的值。

responseText的console.log是:

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

上面的代码返回了我随请求发送的正确参数,但是没有更新id为51的帖子中的内容。

我无法理解如何更新它。

非常感谢

共有1个答案

澹台奇略
2023-03-14

您需要在请求中传递授权。引用此线程以通过POST方法传递自定义restendpoint的正确授权:使用Wordpress rest API JS填充ACF字段

谢谢

 类似资料:
  • 我有一个用户元的自定义endpoint,我已成功注册到WP REST API并为其创建了自定义endpoint。然而,每当我从我的单页应用程序(使用的JS框架是Vue)发出GET和POST请求时,返回值为“false” 我怀疑这是由于使用JWT Authoration for WP REST API插件存在一些授权问题而发生的。 以下是我在functions.php应用程序中采取的步骤: 首先,我

  • 我目前正在从事一个需要WordPress网站和简单的REST api的项目。我发现WordPress有自己的REST api,并决定扩展其功能以满足我的需求。我需要做的就是拥有GET和POST请求的endpoint,这些endpoint可以从与WordPress没有直接关系的表(但在同一个数据库中)中检索/插入数据。我成功地实现了所有GET请求,但是,我正在努力让POST的工作。 我定义了这个路由

  • 我正在设置一个endpoint,我想用它来更新自定义帖子类型中的ACF字段。 在这里,我注册了字段endpoint和回调 在邮递员中发送此请求:http://localhost:32851/wp-json/responsify/v1/assign_external_writer?写入器=32272 如果我使用“title=my_new_title”而不是writer,它会正确更新。但是使用 ACF

  • TL;DR:如何选择一个WP REST API自定义endpoint的响应的每一点信息? 长版 如果我想使用WP REST API构建自定义endpoint - 从不同的帖子类型发送特定帖子数据 - 按照手册中的示例,我得到了这个: 但是get_post()函数没有返回一些数据,如果您希望在页面中显示帖子,这些数据是非常有用的(例如类别id、特色图片)。那么,我如何构建一个自定义endpoint来

  • 我正在尝试使用Ajax更新Wordpress中的自定义域(例如,使用表单文本输入,通过单击按钮替换自定义域文本)。我正在使用高级自定义字段插件,并遵循我在这里找到的示例,但这似乎不起作用:https://support.advancedcustomfields.com/forums/topic/use-update_field-with-ajax/ 我所做的是: (1)将html表单添加到我的si

  • 我试图将我的程序转换为 GUI。我有 2 个主题类型的自定义数组列表 (b 我可以通过ArrayList b=B.get核心()调用这个自定义数组列表;我如何让这个数组列表在我的Jlist中显示。我也试图将JList类型更改为主题,但没有成功。 如何更新JList以在按钮单击事件中显示每个列表。