因为您正在使用rest_prepare_{post_type} 过滤器,您可以将其限制为WP_REST_Posts_Controller::get_items() 回调,使用rest_{post_type}_query 过滤器:
add_filter( \'rest_post_query\', function( $args )
{
    add_filter( \'rest_prepare_post\', \'api_remove_extra_data\', 12, 3 );
    return $args;
} );
 其中岗位类型为
post. 
请注意,通常我们总是希望返回过滤器值,我不遵循您的逻辑api_remove_extra_data() 回调。也许这是版本1的遗物。十、
这就是现在在版本2中定义过滤器的方式:
/**
 * Filter the post data for a response.
 *
 * The dynamic portion of the hook name, $this->post_type, refers to post_type of the post
 * being prepared for the response.
 *
 * @param WP_REST_Response   $response   The response object.
 * @param WP_Post            $post       Post object.
 * @param WP_REST_Request    $request    Request object.
*/
return apply_filters( "rest_prepare_{$this->post_type}", $response, $post, $request );