2015-12-30 2 views
0

Я считаю, что документация для нового WordPress REST API (v2) очень неадекватна и/или неполна. У меня есть плагин, который определяет пользовательские типы сообщений, и я хотел бы использовать REST API по своему назначению. Я попытался следовать примеру в документации, но когда я попробую соответствующий URL (http://example.com/wp-json/wp/v2/prsp/v1/attributes), я получаю ответ «rest_no_route».Добавление конечных точек REST для пользовательского типа сообщения в WordPress

Мои пользовательские типы сообщений появляются в ответе на «http://example.com/wp-json/wp/v2/types».

Отзывы могут комментировать?

$args = array(
    'labels' => $labels, 
    'public' => true, 
    'publicly_queryable' => true, 
    'show_ui' => true, 
    'show_in_menu' => 'prsp-top-level-handle', 
    'rewrite' => array('slug' => 'prsp-attribute', 'with_front' => FALSE), 
    'has_archive' => false, 
    'hierarchical' => false, 
    ... 
    'show_in_rest' => true, 
    'rest_controller_class' => 'WP_REST_Posts_Controller' 
); 
register_post_type('prsp-attribute', $args); 

...

$this->admin = new ProspectAdmin($this->get_version()); 

    $this->loader->add_action('admin_init', $this->admin, 'do_prsp_init', null, null); 

    $this->loader->add_action('admin_menu', $this->admin, 'add_prsp_menus', null, null); 

    $this->loader->add_action('rest_api_init', $this->admin, 'add_rest_api', null, null); 

...

public function rest_get_attributes() 
{ 
    return 'rest_get_attributes()'; // Temporary test for success 
} // rest_get_attributes() 

public function add_rest_api() 
{ 
    register_rest_route('prsp/v1', '/attributes', array(
      'methods' => 'GET', 
      'callback' => array($this, 'rest_get_attributes') 
     )); 
    register_rest_route('prsp/v1', '/attribute/(?P<id>\w+)', array(
      'methods' => 'GET', 
      'callback' => array($this, 'rest_get_attribute') 
     )); 
} // add_rest_api() 

И, где есть объяснение формата для второго параметра register_rest_route()?

ответ

2

URL-адрес должен быть http://example.com/wp-json/prsp/v1/attributes.

Вы можете указать существующие маршруты и конечные точки через GET http://example.com/wp-json (или GET http://example.com/wp-json/prsp/v1).

+0

Отлично! Да, это сработало! – user3780094

+0

Я рад, что смогу помочь. Примите ответ, поэтому мы оба получаем наши баллы. – masa

+0

Вы знаете, где объясняется формат для второго параметра? Мне нужно передать несколько параметров одной из моих функций, и я не вижу объяснений разделителей или чего-либо, связанного с несколькими параметрами. – user3780094