WordPress の REST API の _links に 投稿を追加する

WordPress の REST API には、関連するオブジェクトをリンクする機能があります。

例えば以下のようなコードを足すと、固定ページの API に親のページへのリンクを追加できます。( デフォルトで up という親ページへのリンクがついています。)

$post_type = 'page';
add_filter( 'rest_prepare_' . $post_type, 'rest_prepare', 10, 3 );
function rest_prepare( \WP_REST_Response $response, \WP_Post $post, \WP_REST_Request $request ) {
   $response->add_link(
      'parent',
      rest_url("/wp/v2/pages/{$post->post_parent}"),
      array(
         'embeddable' => true,
      )
   );
   return $response;
}

embeddable => true を設定すると、_embed クエリーをつけてリクエストしたときに、リンクされた投稿のデータも一緒に取得されます。

関連記事の機能とか作るときに便利に使えそうです。