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(строка) (обязательный)
Режим разработки, который нужно проверить. Одно из:
corepluginthemeall- включены ли все три режима разработки (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 7.0
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;
}