WP REST API — Проблемы

Поэтому я пытаюсь работать с WP REST API. Использование последней версии WP. Я использую это во внешнем приложении и тестирую с Postman.

Вот что я хочу сделать:

  1. отображать настраиваемые мета-поля в запросе сообщений GET
  2. ПОЛУЧИТЬ все сообщения (без ограничений)
  3. создавать/обновлять/удалять (несколько) метаполя в одном запросе API

Возможны ли эти вещи с WP REST API? Если да, то может ли кто-нибудь поделиться некоторыми примерами?

Я знаю, что все это очень хорошо работает с WooCommerce REST API.


person Amjad    schedule 18.05.2017    source источник
comment
1. Да, можно, проверьте мой профиль. Я ответил на вопросы twp об этом (принято). 2. Максимум не может быть 10, но мы все еще можем получить общее количество сообщений и страниц (разбивка на страницы). 3. Никогда раньше не пробовал   -  person rheeantz    schedule 18.05.2017
comment
Спасибо, но все равно не помогает делать эти вещи с мета. Я знаю, что мы можем получить мета с сообщениями/идентификаторами/мета, что я хочу сделать, это получить его из /сообщений со всеми сообщениями.   -  person Amjad    schedule 18.05.2017


Ответы (1)


Для этого лучше использовать пользовательскую конечную точку. Вы должны создать свой собственный плагин для этого...

//register different functions for different methods, use parameters in url for GET calls 
register_rest_route('plugin_name', 'your_endpoint', array(
    array('methods' => 'POST',
          'callback' => 'magic_function',           
    ))   
);

function magic_function( $request ) {

    //You can filter the query to get all posts (rest_{$this->post_type}_query)
    add_filter('rest_post_query','my_custom_query', 10, 3);

    $custom_request = new WP_REST_Request( 'GET', '/wp/v2/post');
    $response= rest_do_request( $custom_request );

    $response->data['meta_field'] = get_post_meta($response->data['id'], 'meta_field',true);

    return new WP_REST_Response($response->data);
}

function my_custom_query($args, $request){

    //returns all posts in request...
    $args['numberposts'] = -1;

    return $args;
}
person Rodrigo Souza    schedule 11.10.2017
comment
спасибо, но не то, что я просил. Я заставил это работать другими способами. Выложу здесь, если кто попросит. - person Amjad; 12.10.2017