2016-03-24 8 views
2

Ich versuche, ein zusätzliches Feld zu der wp Json API-Antwort für die '/ Media' Endpunkt hinzufügen. Nach dem doc, habe ich es für '/ Posts' oder '/ Pages' arbeiten, aber ich kann nicht herausfinden, wie ein Feld für den '/ Media' Endpunkt hinzufügen. SoWie zu ändern wp Json API Antwort

(für '/ posts' oder '/ pages') das funktioniert:

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'; 
} 

Für Medien, funktioniert dies nicht, so weit ich habe wie diese versucht:

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'; 
    } 

ich auch versucht, in andere Filter ‚Einhaken‘ (ist das ein richtiger Weg, das zu sagen?)

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'); 

Keiner von denen, scheint den Trick zu tun.

die endgoal ist das Feld 'srcset' an die Medienresonanz

Mit

wp json api hinzufügen: Version 2.0-beta12

wordrpess: Version 4.4.2

Beliebig Hilfe wäre willkommen.

Antwort

0

Sie müssen den Typ verwenden attachment statt media. Dies sollte funktionieren:

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

Dank @herstucki. Du hast Recht, das ist, was ich am Ende mache und es funktioniert. –