1 ) { $key = array_shift( $keys ); if (! isset( $array[$key] ) || ! is_array( $array[$key]) ) { $array[$key] = []; } $array = &$array[$key]; } $array[ array_shift($keys) ] = $value; return $array; } add_filter( 'rest_request_after_callbacks', function( $response, array $handler, \WP_REST_Request $request ) use ( $filters ) { if ( ! $response instanceof \WP_REST_Response ) { return $response; } $route = $request->get_route(); $filters = array_filter( $filters, function( $filter ) use ( $request, $route ) { if ( $filter['enabled'] && $filter['endpoint'] == $route ) { return true; } return false; }); $data = $response->get_data(); foreach ( $filters as $filter ) { array_dot_set( $data, $filter['dot_notation'], $filter['replacement'] ); } $response->set_data( $data ); return $response; }, 10, 3 );