如何将作者从自定义帖子类型添加/嵌入到REST数据中?

时间:2018-11-07 作者:Nabha

我们有几种帖子类型,它们不直接支持作者。相反,我们有用于选择作者的自定义接口。

不过,我们最终得到了一个作者ID,所以我想将该作者ID注入该自定义帖子类型的REST数据中。

我试过这个:

add_filter( \'rest_post_dispatch\', function( $results ) {
    $result->add_link( \'author\', rest_url( \'/wp/v2/users/42\' ), array( \'embeddable\' => true ) );
    return $results;
});
…但这会返回整个响应上的链接(例如,一组10个自定义帖子)--我希望能够为每个帖子添加一个带有该帖子自己用户ID的链接。

这可能吗?我在任何地方都找不到文档--我找到的最好的文档是Linking.

1 个回复
最合适的回答,由SO网友:Nabha 整理而成

我发现了如何获取每个结果并添加链接。对于ananda_video_audio 岗位类型:

add_filter( \'rest_prepare_ananda_video_audio\', function( $results ) {

    // These two lines are unique to our code of course
    $video = new Ananda_Video_Audio( $results->data[\'id\'] ); 
    $authors = $video->get_author_IDs();

    foreach( $authors as $author_id ) {
        $results->add_link( \'author\', rest_url( \'/wp/v2/users/\' . $author_id ), array( \'embeddable\' => true ) );
    }

    return $results;

});
由于Embeddeble设置为true,因此在响应中,作者数据也将全部添加到\\u embedded中。效果很好。

如果您正在做类似的事情,我发现链接很有用:

结束

相关推荐

Php致命错误:无法将WP_REST_RESPONSE类型的对象用作wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php中

我向WordPress添加了一个自定义端点,如下所示: add_action( \'rest_api_init\', function () { register_rest_route( \'menc/v1\', \'/crosscat/(?P[\\w-]+)/(?P[\\w-]+)\', array( \'methods\' => \'GET\', \'callback\' => \'dept_cat_api\',&#x