我正在使用 WP REST API 开发一个 reactjs 后端。我现在正在尝试利用内置的 javascript 客户端,因此我在我的项目中安装了 wpapi 节点包(https://www.npmjs.com/package/wpapi)。
我已经为我的 CPT 启用了相应的行为和端点:
...
'show_in_rest' => true,
'rest_base' => 'mycptslug',//sustituye a posts
'rest_controller_class' => 'WP_REST_Posts_Controller',
...
并且在直接访问(邮递员、jquery、浏览器地址栏...)时它们工作得很好。
在复制官方 npm wpapi 模块的示例时,它们在我的安装中也可以正常工作。
问题是我无法知道如何使用 wp rest api 社区提供的 clientjs来获取我的自定义帖子类型的帖子。我没有在一个简单的节点项目上找到任何工作示例。在官方文档中没有关于如何实现这一点的具体信息(对于具有我的 js 技能的人:))。
我已经尝试过:
https://github.com/WP-API/WP-API/issues/1299
并遵循:
https://bay-a.co.uk/wordpress-tips/wp-api-v2-tips/
但我无法让它工作(例如:无法读取未定义的属性“模型”)。
感谢您的时间。我想这是很多人已经做过的事情......
编辑(由 Andreyco 建议):我的代码就像 github 问题中指出的那样:
var WPAPI = require('wpapi' );
var wp = new WPAPI({ endpoint: 'http://myurl/wp-json'});
var pI = wp.api.models.Post.extend({
urlRoot: 'http://myurl/wp-json/wp/v2/' + '/pi',
defaults: {
type: 'my-cpt'
}
});
var MyPI = wp.api.collections.Posts.extend({
url: 'http://myurl/wp-json/wp/v2/' + 'pis',
model: pI
});
var thePI = new MyPI();
thePI.fetch({
filter: {
nopaging: true
}
}).done( function() {
thePI.each( function( mypi ) {
console.log( mypi.attributes );
});
});
但它给出了以下错误:未捕获的类型错误:无法读取未定义的属性“模型”。请注意,我对网址进行了硬编码,因为 wpApiSettings 常量也给了我未定义的错误...