# wp_debug_mode()

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

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

## Сигнатура

```php
wp_debug_mode()
```

## Описание

Использует три константы: WP_DEBUG, WP_DEBUG_DISPLAY и WP_DEBUG_LOG.
Все три можно определить в wp-config.php. По умолчанию WP_DEBUG и WP_DEBUG_LOG установлены в false, а WP_DEBUG_DISPLAY — в true.
Когда WP_DEBUG равно true, сообщаются все уведомления PHP. WordPress также будет показывать внутренние уведомления: при использовании устаревшей функции WordPress, аргумента функции или файла. Устаревший код может быть удалён в одной из следующих версий.
Разработчикам плагинов и тем настоятельно рекомендуется использовать WP_DEBUG в своих средах разработки.
WP_DEBUG_DISPLAY и WP_DEBUG_LOG не действуют, пока WP_DEBUG не равно true.
Когда WP_DEBUG_DISPLAY равно true, WordPress принудительно отображает ошибки.
WP_DEBUG_DISPLAY по умолчанию равно true. Определение его как null не позволяет WordPress менять глобальную настройку конфигурации. Определение WP_DEBUG_DISPLAY как false принудительно скрывает ошибки.
Когда WP_DEBUG_LOG равно true, ошибки записываются в wp-content/debug.log.
Когда WP_DEBUG_LOG — допустимый путь, ошибки записываются в указанный файл.
Ошибки никогда не отображаются для запросов XML-RPC, REST, ms-files.php и Ajax.

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

Файл: `wp-includes/load.php:578`

```php
function wp_debug_mode() {
	/**
	 * Filters whether to allow the debug mode check to occur.
	 *
	 * This filter runs before it can be used by plugins. It is designed for
	 * non-web runtimes. Returning false causes the `WP_DEBUG` and related
	 * constants to not be checked and the default PHP values for errors
	 * will be used unless you take care to update them yourself.
	 *
	 * To use this filter you must define a `$wp_filter` global before
	 * WordPress loads, usually in `wp-config.php`.
	 *
	 * Example:
	 *
	 *     $GLOBALS['wp_filter'] = array(
	 *         'enable_wp_debug_mode_checks' => array(
	 *             10 => array(
	 *                 array(
	 *                     'accepted_args' => 0,
	 *                     'function'      => function() {
	 *                         return false;
	 *                     },
	 *                 ),
	 *             ),
	 *         ),
	 *     );
	 *
	 * @since 4.6.0
	 *
	 * @param bool $enable_debug_mode Whether to enable debug mode checks to occur. Default true.
	 */
	if ( ! apply_filters( 'enable_wp_debug_mode_checks', true ) ) {
		return;
	}

	if ( WP_DEBUG ) {
		error_reporting( E_ALL );

		if ( WP_DEBUG_DISPLAY ) {
			ini_set( 'display_errors', 1 );
		} elseif ( null !== WP_DEBUG_DISPLAY ) {
			ini_set( 'display_errors', 0 );
		}

		if ( in_array( strtolower( (string) WP_DEBUG_LOG ), array( 'true', '1' ), true ) ) {
			$log_path = WP_CONTENT_DIR . '/debug.log';
		} elseif ( is_string( WP_DEBUG_LOG ) ) {
			$log_path = WP_DEBUG_LOG;
		} else {
			$log_path = false;
		}

		if ( $log_path ) {
			ini_set( 'log_errors', 1 );
			ini_set( 'error_log', $log_path );
		}
	} else {
		error_reporting( E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_ERROR | E_WARNING | E_PARSE | E_USER_ERROR | E_USER_WARNING | E_RECOVERABLE_ERROR );
	}

	/*
	 * The 'REST_REQUEST' check here is optimistic as the constant is most
	 * likely not set at this point even if it is in fact a REST request.
	 */
	if ( defined( 'XMLRPC_REQUEST' ) || defined( 'REST_REQUEST' ) || defined( 'MS_FILES_REQUEST' )
		|| ( defined( 'WP_INSTALLING' ) && WP_INSTALLING )
		|| wp_doing_ajax() || wp_is_json_request()
	) {
		ini_set( 'display_errors', 0 );
	}
}
```

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

- 5.1.0 — WP_DEBUG_LOG can be a file path.
- 3.0.0 — Introduced.

## Связанные

Использует: [`wp_is_json_request`](https://chugunov.pro/api-wordpress/functions/wp_is_json_request/), [`wp_doing_ajax`](https://chugunov.pro/api-wordpress/functions/wp_doing_ajax/), [`apply_filters`](https://chugunov.pro/api-wordpress/functions/apply_filters/).

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