2016-03-24 5 views
2

Я пытаюсь добавить дополнительное поле к ответу wp json api для конечной точки '/ media'. После doc у меня есть работа для «/ posts» или «/ pages», но я не могу понять, как добавить поле для конечной точки «/ media».Как изменить ответ wp json api media

So (для '/ сообщений' или '/' страниц) это работает:

add_action('rest_api_init', 'np_register_extra_field'); 
function np_register_extra_field() { 
    register_rest_field('post', 
    // register_rest_field('page', // this works too 
     'extra_media_field', 
     array(
      'get_callback' => 'np_get_extra_field', 
      'update_callback' => null, 
      'schema'   => null, 
     ) 
    ); 
} 
function np_get_extra_field($object, $field_name, $request) { 
    return 'foobar'; 
} 

Для средств массовой информации, это не работает, до сих пор я пытался так:

add_action('rest_api_init', 'np_register_extra_field'); 
    function np_register_extra_field() { 
     register_rest_field('media', 
      'extra_media_field', 
      array(
       'get_callback' => 'np_get_extra_field', 
       'update_callback' => null, 
       'schema'   => null, 
     ) 
    ); 
    } 
    function np_get_extra_field($object, $field_name, $request) { 
    return 'foobar'; 
    } 

Я также попытался «закреплять» в другие фильтры (в том, что правильный способ сказать, что?)

add_action('rest_media_query', 'np_register_extra_field'); 
add_action('rest_pre_insert_media', 'np_register_extra_field'); 
add_action('rest_prepare_attachment', 'np_register_extra_field'); 

ни один из тех, кто, кажется, сделать трюк.

endgoal является добавление поля 'srcset' в ответ СМИ

Использование

Wp JSon API: Версия 2.0-beta12

wordrpess: версия 4.4.2

Любой помощь будет оценена.

ответ

0

Вам необходимо использовать тип attachment вместо media. Это должно работать:

add_action('rest_api_init', 'np_register_extra_field'); 
    function np_register_extra_field() { 
     register_rest_field('attachment', 
      'extra_media_field', 
      array(
       'get_callback' => 'np_get_extra_field', 
       'update_callback' => null, 
       'schema'   => null, 
     ) 
    ); 
    } 
    function np_get_extra_field($object, $field_name, $request) { 
    return 'foobar'; 
    } 
+0

Thanks @herrstucki. Вы правы, вот что я делаю, и это работает. –

 Смежные вопросы

  • Нет связанных вопросов^_^