wp_is_development_mode()
Проверяет, находится ли сайт в указанном режиме разработки: 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(), когда нужно получить название текущего режима разработки.
Хуков нет.
Возвращает
true|false
. True, если текущий режим разработки равен указанному, false - в противном случае.
Использование
wp_is_development_mode( $mode );
- $mode(строка) (обязательный)
Режим разработки, который нужно проверить. Одно из:
core
plugin
theme
all
- включены ли все три режима разработки (core, plugin и theme).
Примеры
#1 Отключение кэширования в режиме разработки
Пример из кода функции ядра 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 ); }
#2 Отключение кэша для разработчиков плагинов.
Допустим мы пишем плагин и хотим сделать так, чтобы в режиме разработки плагинов наш плагин не использовать кэширование, а в любом другом режиме использовал.
// какой-то код /* * Игнорирование транзитного кэша в режиме разработки '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 is development mode WP 6.6.2
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; }