Регистрация каталога тем в WordPress с помощью функции register_theme_directory()
Функция register_theme_directory()
была представлена в версии WordPress 2.9.0 и используется для регистрации каталога, который может содержать темы.
Параметры функции
- Параметр
$directory
— это путь к папке с темами. Обратите внимание, что в конце пути не должно быть символа/
. Этот путь добавляется в глобальный массив$wp_theme_directories
, который применяется при получении пути или URL к папке тем WordPress.
Возврат значения
Функция возвращает:
true
— если каталог тем был успешно зарегистрирован;false
— если указанный каталог не сущ��ствует.
Использование
Для регистрации каталога вы можете использовать следующий синтаксис:
register_theme_directory( $directory );
Где:
$directory
(строка) — это обязательный параметр. Он может содержать полный путь к папке с темами или подпапку внутриWP_CONTENT_DIR
.
Пример
Пример регистрации каталога тем
Предположим, у вас есть структура плагина следующего вида:
/my-plugin
/my-plugin.php
/themes/
Вам необходимо зарегистрировать папку themes
как каталог для тем. Для этого добавьте следующий код в файл my-plugin.php
:
/*
* Регистрация каталога тем
*/
register_theme_directory( dirname( __FILE__ ) . '/themes' );
Замечания
- Обратите внимание, что
$wp_theme_directories
— это глобальный массив, который хранит пути к зарегистрированным каталогам тем.
Изменения
Функция register_theme_directory()
была внедрена в версии 2.9.0.
Код функции
Вот как выглядит реализация функции register_theme_directory()
в коде WordPress:
function register_theme_directory( $directory ) {
global $wp_theme_directories;
if ( ! file_exists( $directory ) ) {
// Пытаемся приписать, так как каталог тем может быть относительным к каталогу контента.
$directory = WP_CONTENT_DIR . '/' . $directory;
// Если этот каталог не существует, возвращаем false и не регистрируем.
if ( ! file_exists( $directory ) ) {
return false;
}
}
if ( ! is_array( $wp_theme_directories ) ) {
$wp_theme_directories = array();
}
$untrailed = untrailingslashit( $directory );
if ( ! empty( $untrailed ) && ! in_array( $untrailed, $wp_theme_directories, true ) ) {
$wp_theme_directories[] = $untrailed;
}
return true;
}
Связанные функции
Функция register_theme_directory()
полезна в связке с другими функциями для работы с темами:
get_parent_theme_file_path()
— возвращает путь к файлу родительской темы.get_stylesheet_directory()
— возвращает путь к каталогу текущей темы.get_theme_file_uri()
— получает URL для файла темы.
Используйте эти функции для более гибкой работы с темами в WordPress.