如何使用wpapi for Node.js创建一个新的WordPress帖子?

时间:2019-12-09 09:59:19

标签: javascript node.js wordpress rest api

我尝试使用wpapi模块在WordPress中创建帖子。没有错误,请求以200 Success结尾,但是请求正文是一个空对象,并且没有创建帖子。

var wp = new WPAPI({
   endpoint: 'http://your-site.com/wp-json',
   username: 'someusername',
   password: 'password'
});
wp.posts().create({
   title: 'Your Post Title',
   content: 'Your post content',
   status: 'publish'
}).then(function( response ) {
   console.log( response.id ); // This is undefined
})

那是为什么,我该如何解决?

2 个答案:

答案 0 :(得分:4)

就像我提到的here一样,我使用“应用程序密码”插件解决了该问题。

如果您具有Duo身份验证,并且WP API rest客户端无法解析JSON响应(这确实是无效的),但是却无提示地失败(在那里有try-catch),则可能会出现问题。

  1. 安装Application Passwords插件
  2. 也许创建一个新用户(例如用户名:wpapi)
  3. 为该用户创建一个应用程序密码,然后在Node.js代码中使用它:

    var wp = new WPAPI({ 
      endpoint: 'http://your-site.com/wp-json',
      username: 'wpapi',
      password: 'XXXX XXXX XXXX XXXX'
    });
    

这将绕过Duo身份验证。

答案 1 :(得分:2)

您可以使用[Application password][1]插件解决此问题! 它用于验证诸如REST API和XML-RPC之类的API请求。它将绕过两因素身份验证,并有助于在不直接提供密码的情况下对用户进行身份验证。而是为每个应用程序生成一个唯一的密码,而不显示用户的主密码。

仅使用此代码!

var wp = new WPAPI({
   endpoint: 'http://your-site.com/wp-json',
   username: 'someusername',
   password: 'password'
});