我正在尝试减少使用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
}
答案 0 :(得分:-1)
您可以将字段参数传递给API 像这样:
[url]/wp-json/wp/v2/tags?fields=id,name
注意这是示例是/ tags,您可以使用/ categories等,并仍然指定字段。 我建议安装JSONView chrome插件,以便在测试端点时可以读取JSON的转储。