Функция get_theme_root() в WordPress: описание, примеры использования, производительность

## Функция GET_THEME_ROOT() в WordPress

Функция get_theme_root() используется для получения пути к папке с темами на вашем сайте WordPress. Она возвращает строку, содержащую этот путь, но без завершающего слэша.

### Как это работает

Функция get_theme_root() используется непосредственно в других функциях, таких как:

- get_template_directory()
- get_stylesheet_directory()

### Производительность

- Время выполнения за один вызов: 0.00001 секунды.
- При вызове 50000 раз: приблизительно 0.01 секунды.

### Версия PHP и WordPress

- Тестировалось на PHP 7.4.8 и WordPress 5.6.2.

### Возвращаемое значение

Функция возвращает строку, которая содержит путь к директории тем.

### Синтаксис использования

```php
get_theme_root( $stylesheet_or_template );
  • $stylesheet_or_template: (строка) Имя темы. Если не указано, будет использоваться корневая директория основной темы.

Примеры использования

Пример 1: Получение полного пути к директории тем

echo get_theme_root();             // Выводит: /home/k/foo/example.com/www/wp-content/themes
echo get_theme_root( 'my-theme' ); // Выводит: /home/k/foo/example.com/www/wp-content/themes

Пример 2: Количество подпапок в директории тем

function display_themes_subdirs_count_info() {
    $theme_root = get_theme_root();
    $files_array = glob( "$theme_root/*", GLOB_ONLYDIR );

    echo count( $files_array ) . " подкаталогов в директории: $theme_root";
}

Примечания

  • Глобальная переменная: Array $wp_theme_directories

История изменения

  • Функция была введена в версии 1.5.0.

Код функции get_theme_root()

Вот как выглядит код функции:


function get_theme_root( $stylesheet_or_template = '' ) {
global $wp_theme_directories;

$theme_root = '';

if ( $stylesheet_or_template ) {
    $theme_root = get_raw_theme_root( $stylesheet_or_template );
    if ( $theme_root ) {
        /*
         * Всегда добавляем WP_CONTENT_DIR, если текущая директория не зарегистрирована как папка для тем.
         * Это полезно для относительных папок тем в случае возникновения ошибок.
         */
        if ( ! in_array( $theme_root, (array) $wp_theme_directories, true ) ) {
            $theme_root = WP_CONTENT_DIR . $theme_root;
        }
    }
}

if ( ! $theme_root ) {
    $theme_root = WP_CONTENT_DIR . '/themes';
}

/**
 * Фильтрует абсолютный путь к директории тем.
 *
 * @since 1.5.0
 *
 * @param string $theme_root Абсолютный путь к директории тем.
 */
return apply_filters( 'theme_root', $theme_root );

}


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

- get_parent_theme_file_path()
- get_stylesheet_directory()
- get_template_directory()

Эти функции помогают работать с темами и их файлами.

Теперь текст стал более понятным для начинающих пользователей WordPress, а структура и форматирование обеспечивают удобство чтения и восприятия информации.

Leave a Reply

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