1

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

4

2 回答 2

2

这是由上述 GitHub 问题产生的文档的直接链接:http : //wp-api.org/node-wpapi/custom-routes/ 该页面记录了如何使用 wpapi 库的registerRoute方法来设置自定义端点处理程序工厂对于您自己的自定义帖子类型。

于 2017-07-12T18:05:52.020 回答
1

感谢 github 中的sdgluck用户提供了解决方案。

https://github.com/WP-API/node-wpapi/issues/283

我认为node-wpapi是一个包含wp rest api的backbone.js客户端的节点包,事实并非如此。因此,将backbonejs客户端功能应用于已安装的node-wpapi包时,我不断收到错误消息。

希望对任何初学者都有帮助。

于 2016-12-26T17:14:09.607 回答