Функция WP_IS_DEVELOPMENT_MODE(): проверка режима разработки в WordPress

WP_IS_DEVELOPMENT_MODE() │ WP 6.3.0

Функция WP_IS_DEVELOPMENT_MODE() проверяет, находится ли ваш сайт в режиме разработки. Это важно для разработчиков, чтобы следить за тем, какие изменения и функции они тестируют.

Основная информация

Эта функция использует другую функцию — wp_get_development_mode().

Возврат значения

Функция возвращает:

  • true — если текущий режим соответствует запрашиваемому,
  • false — в противном случае.

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

Функция вызывается так:

wp_is_development_mode( $mode );

Параметры

  • $mode (строка, обязательный) — режим разработки, который нужно проверить. Это может быть один из следующих режимов:
    • 'core' — для основного кода WordPress,
    • 'plugin' — для плагинов,
    • 'theme' — для тем,
    • 'all' — для всех режимов.

Примеры

Пример 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:

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

    // Возвращает true, если текущий режим охватывает все режимы.
    if ( 'all' === $current_mode ) {
        return true;
    }

    // Возвращает true, если текущий режим совпадает с запрашиваемым режимом.
    return $mode === $current_mode;
}

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

  • _doing_it_wrong()
  • get_num_queries()
  • wp_debug_backtrace_summary()
  • wp_debug_mode()
  • wp_get_development_mode()
  • wp_get_environment_type()

Эти функции могут быть полезны, если вы хотите глубже изучить работу WordPress и отладку.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *