WP Rest API自定义端点 - JSON返回NULL

时间:2018-02-15 16:42:58

标签: php json wordpress wordpress-rest-api

我正在尝试减少使用Rest API时返回的JSON。我能够使用查询中的“_embed”参数使其工作,但它返回了我不需要的大量数据。因此,根据WP最佳实践,我想设置一个自定义端点,并在其回调中调用一个函数来输出我需要的三个项目。看起来很简单,但是当我尝试时它会为所有节点返回NULL。在我的functions.php文件中,我有:

function get_all_posts( WP_REST_Request $request ) {
    return [
        'id'        => $data->data['id'],
        'title'     => $data->data['title']['rendered'],
        'link'      => $data->data['link'],
        'date'      => $data->data['date'], //not correct
        //similar calls to get thumbnail image and category
    ];
}

然后路由并回调自定义端点

add_action( 'rest_api_init', function () {
    register_rest_route( 'mydata/v1', '/all', array(
        'methods' => 'GET',
        'callback' => 'get_all_posts',
    ) );
} );

当我使用网址 - https://somedomain.com/blog/wp-json/mydata/v1/all时,我会在页面上看到以下内容:

{
    "id": null,
    "title": null,
    "link": null
}

1 个答案:

答案 0 :(得分:-1)

您可以将字段参数传递给API 像这样:

[url]/wp-json/wp/v2/tags?fields=id,name 

注意这是示例是/ tags,您可以使用/ categories等,并仍然指定字段。 我建议安装JSONView chrome插件,以便在测试端点时可以读取JSON的转储。