2

「/media」エンドポイントの wp json API レスポンスに追加のフィールドを追加しようとしています。ドキュメントに従って、「/posts」または「/pages」で機能していますが、「/media」エンドポイントのフィールドを追加する方法がわかりません。

したがって (「/posts」または「/pages」の場合)、これは機能します:

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

それらのどれもうまくいかないようです。

最終目標は、フィールド「srcset」をメディア応答に追加することです

使用する

wp json api : バージョン 2.0-beta12

ワードプレス : バージョン 4.4.2

どんな助けでも大歓迎です。

4

1 に答える 1

0

attachmentの代わりにtype を使用する必要があります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';
  }
于 2016-11-30T10:27:10.820 に答える