wp_debug_mode() – Set PHP error reporting based on WordPress debug settings.

You appear to be a bot. Output may be restricted

Description

Set PHP error reporting based on WordPress debug settings.

Uses three constants: `WP_DEBUG`, `WP_DEBUG_DISPLAY`, and `WP_DEBUG_LOG`. All three can be defined in wp-config.php. By default, WP_DEBUG and WP_DEBUG_LOG are set to false, and WP_DEBUG_DISPLAY is set to true. When WP_DEBUG is true, all PHP notices are reported. WordPress will also display internal notices: when a deprecated WordPress function, function argument, or file is used. Deprecated code may be removed from a later version. It is strongly recommended that plugin and theme developers use WP_DEBUG in their development environments. WP_DEBUG_DISPLAY and WP_DEBUG_LOG perform no function unless WP_DEBUG is true. When WP_DEBUG_DISPLAY is true, WordPress will force errors to be displayed. WP_DEBUG_DISPLAY defaults to true. Defining it as null prevents WordPress from changing the global configuration setting. Defining WP_DEBUG_DISPLAY as false will force errors to be hidden. When WP_DEBUG_LOG is true, errors will be logged to `wp-content/debug.log`. When WP_DEBUG_LOG is a valid path, errors will be logged to the specified file. Errors are never displayed for XML-RPC, REST, `ms-files.php`, and Ajax requests.

Usage

wp_debug_mode();

Parameters

Returns

void

Source

File name: wordpress/wp-includes/load.php
Lines:

1 to 67 of 67
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 );
  }

  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 );
  }
}
 

 View on GitHub View on Trac