使用WP Rest API javascript客户端(backbonejs)

时间:2016-12-25 20:49:43

标签: reactjs backbone.js wp-api wordpress-rest-api

我正在使用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常量也给了我未定义的错误...

2 个答案:

答案 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方法为您自己的自定义帖子设置自定义端点处理程序工厂类型。