2016-12-25 14 views
1

Я разрабатываю бэкэнд реакции с использованием WP REST API. Теперь я пытаюсь использовать встроенный javascript-клиент, поэтому я установил пакет узлов wpapi в свой проект (https://www.npmjs.com/package/wpapi).Получить сообщения Wordpress с настраиваемым типом сообщения с использованием WP Rest API javascript Client (backbonejs)

Я включил соответствующее поведение и конечные точки к моим CPTS:

... 
'show_in_rest'  => true, 
'rest_base'   => 'mycptslug',//sustituye a posts 
'rest_controller_class' => 'WP_REST_Posts_Controller', 
... 

и они работают отлично при обращении напрямую (почтальона, JQuery, адресную строку браузера ...).

При копировании образцов официального модуля npm wpapi они также работают так, как ожидалось, в моей установке.

Проблема заключается в том, что я не могу узнать, как получить сообщений моих пользовательских типов сообщений, используя clientjs, предоставленные сообществом app rest api. Я не нашел рабочего образца в проекте простого узла. В официальной документации нет конкретной информации о том, как достичь этого (для кого-то с моими навыками js :)).

Я уже пробовал:

https://github.com/WP-API/WP-API/issues/1299

и следовать:

https://bay-a.co.uk/wordpress-tips/wp-api-v2-tips/

, но я не могу получить его работу (например: Не удается прочитать 'модели' собственности не определено).

Спасибо за ваше время. Я предполагаю, что это что-то много людей уже сделали ...

Edit (предложенный 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); 
          }); 
         }); 

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

+0

Покажите нам, как использовать код для извлечения данных из WP API. – Andreyco

ответ

1

Благодаря sdgluck пользователя в GitHub, который дал разрешение.

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

Я думал, что узел-wpapi был пакет узел, содержащий Backbone.js клиента о сор REST API, и это не так. Поэтому я продолжал получать ошибки, применяя клиентские функции backbonejs к установленному пакету node-wpapi.

Надеюсь, что это поможет любому новичку.

1

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