我正在使用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 );
});
});
但是它给出了以下错误:未捕获的TypeError:无法读取未定义的属性“模型”。 请注意,我对网址进行了硬编码,因为wpApiSettings常量也给了我未定义的错误...
答案 0 :(得分:1)
感谢github中的 sdgluck 用户,他提供了解决方案。
https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/CountDownLatch.html
我认为node-wpapi是一个包含wp rest api的backbone.js客户端的节点包,但事实并非如此。因此,我一直在将backbonejs客户端函数应用于已安装的node-wpapi包时出错。
希望对任何初学者都有帮助。
答案 1 :(得分:1)
以下是上述GitHub问题引起的文档的直接链接:http://wp-api.org/node-wpapi/custom-routes/该页面记录了如何使用wpapi库的registerRoute
方法为您自己的自定义帖子设置自定义端点处理程序工厂类型。