wp_get_development_mode() │ WP 6.3.0

Click here to view original web page at wp-kama.ru

Получает текущий режим разработки: core, plugin, theme, all.

Режим разработки задается в файле wp-config.php через константу WP_DEVELOPMENT_MODE. Например:

define( 'WP_DEVELOPMENT_MODE', 'all' )

Эта функция возвращает значение константы WP_DEVELOPMENT_MODE. Значение предварительно проверяется, если оно не соответствует стандарту, то вернется пустая строка.

Режим разработки в WordPress - это режим отдельный от дебага (WP_DEBUG) или среды разработки wp_get_environment_type(). Он не влияет на обработку ошибок или отладку, а нужен, чтобы выполнять или не выполнять что-либо в режиме разработки. Например, плагин может проверить включен ли режим разработки плагинов и НЕ использовать кэширование для определенного участка кода в этом случае.

Используйте wp_is_development_mode( $mode ), когда нужно проверить, находится ли сайт в указанном режиме разработки.

Основа для: wp_is_development_mode() Хуков нет.

Возвращает

Строку. Текущий режим разработки. Одно из:

  • core
  • plugin
  • theme
  • all - специальное значение, означающее, что включены все три режима разработки (core, plugin и theme).
  • '' (пустая строка) - режим разработки отключен или неправильно установлено значение константы WP_DEVELOPMENT_MODE.

Использование

wp_get_development_mode();

Примеры

Допустим мы пишем плагин и хотим сделать так, чтобы в режиме разработки плагинов наш плагин не использовать кэширование, а в любом другом режиме использовал.

// какой-то код
	/*
	 * Игнорирование транзитного кэша в режиме разработки 'core'.
	 * Это нужно, чтобы не вмешиваться в рабочий процесс разработчика плагина.
	 */
	if ( ! wp_is_development_mode( 'plugin' ) ) {
		$transient_name = 'wp_core_block_css_files';
		$files          = get_transient( $transient_name );
		if ( ! $files ) {
			$files = glob( wp_normalize_path( __DIR__ . '/**/**.css' ) );
			set_transient( $transient_name, $files );
		}
	} 
	else {
		$files = glob( wp_normalize_path( __DIR__ . '/**/**.css' ) );
	}
// какой-то код

Список изменений

С версии 6.3.0Введена.

Код wp_get_development_mode() WP 6.3

wp-includes/load.php

function wp_get_development_mode() {
	static $current_mode = null;

	if ( ! defined( 'WP_RUN_CORE_TESTS' ) && null !== $current_mode ) {
		return $current_mode;
	}

	$development_mode = WP_DEVELOPMENT_MODE;

	// Exclusively for core tests, rely on the `$_wp_tests_development_mode` global.
	if ( defined( 'WP_RUN_CORE_TESTS' ) && isset( $GLOBALS['_wp_tests_development_mode'] ) ) {
		$development_mode = $GLOBALS['_wp_tests_development_mode'];
	}

	$valid_modes = array(
		'core',
		'plugin',
		'theme',
		'all',
		'',
	);

	if ( ! in_array( $development_mode, $valid_modes, true ) ) {
		$development_mode = '';
	}

	$current_mode = $development_mode;

	return $current_mode;
}

Cвязанные функции