Функция search_theme_directories() выполняет сканирование всех зарегистрированных директорий с темами и возвращает список найденных тем. Она используется для поиска доступных тем на сайте, проверяя наличие и корректность файлов тем.
search_theme_directories( bool $force = false ): array|false
Описание
search_theme_directories() ищет все темы в зарегистрированных директориях, в которых должны находиться обязательные файлы темы, такие как style.css. Функция возвращает массив тем, которые были найдены и распознаны как валидные.
Эта функция полезна при программном получении списка всех установленных тем на сайте, а также для динамической работы с темами в процессе разработки.
Параметры
$force(логический, необязательный):
Определяет, нужно ли принудительно запустить новое сканирование директорий тем.
По умолчанию:false.
Возвращаемые значения
- Массив — если успешен поиск, возвращает массив найденных тем.
false— если поиск завершился неудачно.
Примечание
По умолчанию файл style.css должен находиться в корневом каталоге темы, но эта функция также поддерживает размещение файлов темы, таких как style.css и functions.php, в подкаталогах внутри корневой директории темы.
Пример 1: Получение всех тем
Следующий код возвращает массив всех найденных тем:
$theme_dirs = search_theme_directories();
print_r( $theme_dirs );
Вывод будет примерно таким:
Array
(
[Ale] => Array
(
[theme_file] => Ale/style.css
[theme_root] => /var/www/wp-content/themes
)
[twentytwentyfour] => Array
(
[theme_file] => twentytwentyfour/style.css
[theme_root] => /var/www/wp-content/themes
)
)
Пример 2: Принудительное обновление списка тем
Если требуется принудительно просканировать директории для поиска новых тем, установите параметр $force в true:
$theme_dirs = search_theme_directories( true );
Этот код выполнит новое сканирование директорий тем, даже если кэшированные данные уже существуют.
Заключение
Функция search_theme_directories() — это мощный инструмент для получения списка доступных тем на сайте. Она используется как основа для функции wp_get_themes() и полезна при работе с темами программно, предоставляя гибкость в управлении темами и их настройками.