Функция register_theme_directory()
в WordPress используется для регистрации директории, в которой могут находиться темы. Это позволяет системе WordPress распознавать темы, расположенные в пользовательских папках, отличных от стандартной директории тем /wp-content/themes/
.
register_theme_directory( string $directory ): bool
Параметры
- $directory (строка) — Обязательный параметр. Определяет полный путь до папки с темами или относительный путь от директории
WP_CONTENT_DIR
. Путь не должен заканчиваться на слэш/
.
Возвращаемое значение
- bool — Возвращает
true
, если директория была успешно зарегистрирована, илиfalse
, если директория не существует.
Описание
Когда вы вызываете функцию register_theme_directory()
, указанный путь добавляется в глобальный массив $wp_theme_directories
. Этот массив используется WordPress для поиска и загрузки доступных тем.
Эта функция полезна, если вам нужно добавить нестандартную папку для хранения тем, например, внутри вашего плагина или другой кастомной директории.
Пример 1: Регистрация директории с темами внутри плагина
Предположим, у вас есть плагин с следующей структурой:
/my-plugin/
/my-plugin.php
/themes/
В этом случае, вы можете зарегистрировать директорию /themes
как папку для тем, используя следующий код:
<?php
/*
* Для структуры плагина такого вида:
*
* /my-plugin
* /my-plugin.php
* /themes/
*
* Этот код нужно разместить в файле my-plugin.php.
*/
register_theme_directory( dirname( __FILE__ ) . '/themes' );
Пример 2: Регистрация пользовательской директории с темами
Предположим, что вам нужно зарегистрировать нестандартную директорию /custom-themes
, которая находится за пределами директории плагинов. Вот пример:
<?php
// Регистрация директории /custom-themes как директории для тем.
register_theme_directory( '/var/www/html/custom-themes' );
Как это работает
Функция добавляет указанную директорию в массив $wp_theme_directories
, который используется WordPress для поиска тем. Если в этой директории найдены темы, они становятся доступными для активации через административную панель.
Важные замечания
- Не забывайте об отсутствии слэша на конце пути. При передаче пути в функцию, слэш в конце строки не нужен.
- Относительные пути: Можно передавать относительные пути относительно директории
WP_CONTENT_DIR
, что удобно для регистрации тем в пределах папкиwp-content
.
Заключение
Функция register_theme_directory()
предоставляет удобный способ расширить возможности WordPress по загрузке тем из различных директорий. Это может быть полезно для разработчиков плагинов или для тех, кто хочет использовать нестандартные пути для хранения тем.