Получение сообщений WordPress произвольного типа с помощью клиента javascript WP Rest API (backbonejs)

Я разрабатываю бэкэнд reactjs, используя WP REST API. Теперь я пытаюсь воспользоваться встроенным клиентом 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 они также работают должным образом в моей установке.

Проблема в том, что я не могу узнать, как получить сообщения моих пользовательских типов сообщений с помощью clientjs, предоставленного сообществом wp rest api. Я не нашел ни одного рабочего образца в простом проекте узла. В официальной документации нет конкретной информации о том, как этого добиться (для тех, у кого есть навыки 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 );
                             });
                         });

Но это дает следующую ошибку: Uncaught TypeError: Невозможно прочитать модели свойств неопределенного. Обратите внимание, что я жестко закодировал URL-адреса, потому что константа wpApiSettings также дала мне неопределенную ошибку...


person mcartur    schedule 25.12.2016    source источник
comment
Покажите нам код, используемый для получения данных из WP API.   -  person Andreyco    schedule 26.12.2016


Ответы (2)


Вот прямая ссылка на документацию, возникшую в связи с вышеупомянутой проблемой GitHub: http://wp-api.org/node-wpapi/custom-routes/ На этой странице описано, как использовать метод registerRoute библиотеки wpapi для настройки фабрик пользовательских обработчиков конечных точек для ваших собственных типов записей.

person K. Adam    schedule 12.07.2017