# get_settings_errors()

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

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

## Сигнатура

```php
get_settings_errors( string $setting = '', bool $sanitize = false ): array[]
```

## Описание

Проверяет массив $wp_settings_errors на наличие ошибок, объявленных во время текущей загрузки страницы, и возвращает их.
Если изменения были только что отправлены ($_GET['settings-updated']) и ошибки настроек были сохранены в транзиенте 'settings_errors', вместо этого будут возвращены эти ошибки. Так ошибки передаются между загрузками страниц.
Используйте аргумент $sanitize для ручной повторной очистки опции перед возвратом ошибок.
Это полезно, если у вас есть ошибки или уведомления, которые нужно показать даже когда пользователь не отправлял данные (то есть при первой загрузке страницы опций или в хуке-действии 'admin_notices').

## Параметры

- `$setting` `string` — необязательный, по умолчанию `''`. Слаг конкретной настройки, ошибки которой нужны.
- `$sanitize` `bool` — необязательный, по умолчанию `false`. Нужно ли повторно очистить значение настройки перед возвратом ошибок.

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

`array[]` — ...$0 array Associative array of setting error data. setting stringSlug title of the setting to which this error applies. code stringSlug-name to identify the error. Used as part of 'id' attribute in HTML output. message stringThe formatted message text to display to the user (will be shown inside styled and tags). type stringOptional. Message type, controls HTML class. Possible values include 'error', 'success', 'warning', 'info'. Default 'error'. Source function get_settings_errors( $setting = '', $sanitize = false ) { global $wp_settings_errors; /* * If $sanitize is true, manually re-run the sanitization for this option * This allows the $sanitize_callback from register_setting() to run, adding * any settings errors you want to show by default. */ if ( $sanitize ) { sanitize_option( $setting, get_option( $setting ) ); } // If settings were passed back from options.php then use them. if ( isset( $_GET['settings-updated'] ) && $_GET['settings-updated'] && get_transient( 'settings_errors' ) ) { $wp_settings_errors = array_merge( (array) $wp_settings_errors, get_transient( 'settings_errors' ) ); delete_transient( 'settings_errors' ); } // Check global in case errors have been added on this pageload. if ( empty( $wp_settings_errors ) ) { return array(); } // Filter the results to those of a specific setting if one was set. if ( $setting ) { $setting_errors = array(); foreach ( (array) $wp_settings_errors as $key => $details ) { if ( $setting === $details['setting'] ) { $setting_errors[] = $wp_settings_errors[ $key ]; } } return $setting_errors; } return $wp_settings_errors; }

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

Файл: `wp-admin/includes/template.php:1917`

```php
function get_settings_errors( $setting = '', $sanitize = false ) {
	global $wp_settings_errors;

	/*
	 * If $sanitize is true, manually re-run the sanitization for this option
	 * This allows the $sanitize_callback from register_setting() to run, adding
	 * any settings errors you want to show by default.
	 */
	if ( $sanitize ) {
		sanitize_option( $setting, get_option( $setting ) );
	}

	// If settings were passed back from options.php then use them.
	if ( isset( $_GET['settings-updated'] ) && $_GET['settings-updated'] && get_transient( 'settings_errors' ) ) {
		$wp_settings_errors = array_merge( (array) $wp_settings_errors, get_transient( 'settings_errors' ) );
		delete_transient( 'settings_errors' );
	}

	// Check global in case errors have been added on this pageload.
	if ( empty( $wp_settings_errors ) ) {
		return array();
	}

	// Filter the results to those of a specific setting if one was set.
	if ( $setting ) {
		$setting_errors = array();

		foreach ( (array) $wp_settings_errors as $key => $details ) {
			if ( $setting === $details['setting'] ) {
				$setting_errors[] = $wp_settings_errors[ $key ];
			}
		}

		return $setting_errors;
	}

	return $wp_settings_errors;
}
```

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

- 3.0.0 — Introduced.

## Связанные

Использует: [`sanitize_option`](https://chugunov.pro/api-wordpress/functions/sanitize_option/), [`get_transient`](https://chugunov.pro/api-wordpress/functions/get_transient/), [`delete_transient`](https://chugunov.pro/api-wordpress/functions/delete_transient/), [`get_option`](https://chugunov.pro/api-wordpress/functions/get_option/).
Используется в: [`settings_errors`](https://chugunov.pro/api-wordpress/functions/settings_errors/), [`add_settings_error`](https://chugunov.pro/api-wordpress/functions/add_settings_error/).

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