san*_*ain 5 wordpress-rest-api
我已经unset($data->data['field_name']) 从 json 输出中删除了不需要的数据。为此,我使用 wordpress 过滤器rest_prepare_。
但是我们如何从 JSON 输出中删除 _links 对象呢?
小智 5
我不知道如何取消设置,但您可以设置要返回的变量。
\n\nfunction prepare_rest($data, $post, $request){\n return [\n 'id' => $data->data['id'],\n 'title' => $data->data['title']['rendered']\n ];\n}\n\nadd_filter('rest_prepare_post', 'prepare_rest', 10, 3);\nRun Code Online (Sandbox Code Playgroud)\n
从 API 中删除内容时必须小心,但如果您确定要删除它,可以这样做:
function so_45027789_rest_prepare_post($data, $post, $request)
{
foreach($data->get_links() as $_linkKey => $_linkVal) {
$data->remove_link($_linkKey);
}
return $data;
}
add_filter('rest_prepare_post', 'so_45027789_rest_prepare_post', 1, 3);
Run Code Online (Sandbox Code Playgroud)
我建议仅当您在使用 API 的实现中明确要求较小的响应时才这样做,从而保持 API 的默认使用不变,例如通过查询变量:
function so_45027789_rest_prepare_post($data, $post, $request)
{
$params = $request->get_params();
if(isset($params['_minimal'])) {
foreach($data->get_links() as $_linkKey => $_linkVal) {
$data->remove_link($_linkKey);
}
}
return $data;
}
add_filter('rest_prepare_post', 'so_45027789_rest_prepare_post', 1, 3);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2891 次 |
| 最近记录: |