wp_is_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' )

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

Используйте wp_get_development_mode(), когда нужно получить название текущего режима разработки.

Работает на основе: wp_get_development_mode() Хуков нет.

Возвращает

true|false. True, если текущий режим разработки равен указанному, false - в противном случае.

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

wp_is_development_mode( $mode );
$mode(строка) (обязательный)

Режим разработки, который нужно проверить. Одно из:

  • core
  • plugin
  • theme
  • all - включены ли все три режима разработки (core, plugin и theme).

Примеры

Пример из кода функции ядра wp_get_global_styles_custom_css():

    /*
	 * Игнорировать кэш, когда режим разработки установлен в 'theme', чтобы не мешать работе разработчика темы.
	 */
	$can_use_cached = ! wp_is_development_mode( 'theme' );

	$cache_key   = 'wp_get_global_styles_custom_css';
	$cache_group = 'theme_json';
	if ( $can_use_cached ) {
		$cached = wp_cache_get( $cache_key, $cache_group );
		if ( $cached ) {
			return $cached;
		}
	}

	$tree       = WP_Theme_JSON_Resolver::get_merged_data();
	$stylesheet = $tree->get_custom_css();

	if ( $can_use_cached ) {
		wp_cache_set( $cache_key, $stylesheet, $cache_group );
	}

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

// какой-то код
	/*
	 * Игнорирование транзитного кэша в режиме разработки '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_is_development_mode() WP 6.3

wp-includes/load.php

function wp_is_development_mode( $mode ) {
	$current_mode = wp_get_development_mode();
	if ( empty( $current_mode ) ) {
		return false;
	}

	// Return true if the current mode encompasses all modes.
	if ( 'all' === $current_mode ) {
		return true;
	}

	// Return true if the current mode is the given mode.
	return $mode === $current_mode;
}

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