WordPress at Your Fingertips

wp_get_environment_type() WP 1.0

Retrieves the current environment type.

The type can be set via the WP_ENVIRONMENT_TYPE global system variable, or a constant of the same name.

Possible values are 'local', 'development', 'staging', and 'production'. If not set, the type defaults to 'production'.

1 time — 0.000001 sec (speed of light) | 50000 times — 0.00 sec (speed of light)

No Hooks.

Return

String. The current environment type.

Usage

wp_get_environment_type();

Changelog

Since 5.5.0 Introduced.
Since 5.5.1 Added the 'local' type.
Since 5.5.1 Removed the ability to alter the list of types.

Code of wp_get_environment_type() WP 5.8.1

function wp_get_environment_type() {
	static $current_env = '';

	if ( $current_env ) {
		return $current_env;
	}

	$wp_environments = array(
		'local',
		'development',
		'staging',
		'production',
	);

	// Add a note about the deprecated WP_ENVIRONMENT_TYPES constant.
	if ( defined( 'WP_ENVIRONMENT_TYPES' ) && function_exists( '_deprecated_argument' ) ) {
		if ( function_exists( '__' ) ) {
			/* translators: %s: WP_ENVIRONMENT_TYPES */
			$message = sprintf( __( 'The %s constant is no longer supported.' ), 'WP_ENVIRONMENT_TYPES' );
		} else {
			$message = sprintf( 'The %s constant is no longer supported.', 'WP_ENVIRONMENT_TYPES' );
		}

		_deprecated_argument(
			'define()',
			'5.5.1',
			$message
		);
	}

	// Check if the environment variable has been set, if `getenv` is available on the system.
	if ( function_exists( 'getenv' ) ) {
		$has_env = getenv( 'WP_ENVIRONMENT_TYPE' );
		if ( false !== $has_env ) {
			$current_env = $has_env;
		}
	}

	// Fetch the environment from a constant, this overrides the global system variable.
	if ( defined( 'WP_ENVIRONMENT_TYPE' ) ) {
		$current_env = WP_ENVIRONMENT_TYPE;
	}

	// Make sure the environment is an allowed one, and not accidentally set to an invalid value.
	if ( ! in_array( $current_env, $wp_environments, true ) ) {
		$current_env = 'production';
	}

	return $current_env;
}

debug

Site Options (settings)

No comments
    Log In