# rest_convert_error_to_response()

URL: https://chugunov.pro/api-wordpress/functions/rest_convert_error_to_response/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 5.7.0.

## Сигнатура

```php
rest_convert_error_to_response( WP_Error $error ): WP_REST_Response
```

## Описание

Перебирает все коды и сообщения об ошибках, преобразуя их в плоский массив. Это упрощает поведение клиента, поскольку данные представляются в JSON в виде списка, а не объекта/карты.

## Параметры

- `$error` `WP_Error` — обязательный. Экземпляр WP_Error .

## Возвращаемое значение

`WP_REST_Response`

## Исходный код

Файл: `wp-includes/rest-api.php:3420`

```php
function rest_convert_error_to_response( $error ) {
	$status = array_reduce(
		$error->get_all_error_data(),
		/**
		 * @param int   $status     Status.
		 * @param mixed $error_data Error data.
		 */
		static function ( int $status, $error_data ): int {
			if ( is_array( $error_data ) && isset( $error_data['status'] ) && is_numeric( $error_data['status'] ) ) {
				$status = (int) $error_data['status'];
			}
			return $status;
		},
		500
	);

	$errors = array();

	foreach ( (array) $error->errors as $code => $messages ) {
		$all_data  = $error->get_all_error_data( $code );
		$last_data = array_pop( $all_data );

		foreach ( (array) $messages as $message ) {
			$formatted = array(
				'code'    => $code,
				'message' => $message,
				'data'    => $last_data,
			);

			if ( $all_data ) {
				$formatted['additional_data'] = $all_data;
			}

			$errors[] = $formatted;
		}
	}

	$data = $errors[0];
	if ( count( $errors ) > 1 ) {
		// Remove the primary error.
		array_shift( $errors );
		$data['additional_errors'] = $errors;
	}

	return new WP_REST_Response( $data, $status );
}
```

## История изменений

- 5.7.0 — Introduced.

## Связанные

Используется в: `WP_REST_Request::sanitize_params`, `WP_REST_Request::has_valid_params`, `WP_REST_Server::error_to_response`.

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/rest_convert_error_to_response/
