You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
1.4 KiB
30 lines
1.4 KiB
<?
|
|
function requireShortcodes($baseDir) {
|
|
$modules = glob($baseDir . '/*', GLOB_ONLYDIR); // glob() — это встроенная PHP-функция для поиска файлов и директорий по шаблонуm, GLOB_ONLYDIR — флаг, указывающий, что нужно вернуть только директории, игнорируя файлы
|
|
|
|
foreach ($modules as $module) {
|
|
$componentsDir = $module . '/shortcodes';
|
|
if (is_dir($componentsDir)) {
|
|
// Рекурсивно подключаем все shortcodes.php
|
|
requireShortcodesRecursive($componentsDir);
|
|
}
|
|
}
|
|
}
|
|
|
|
function requireShortcodesRecursive($dir) {
|
|
// Получаем все подпапки в текущем каталоге
|
|
$components = glob($dir . '/*', GLOB_ONLYDIR);
|
|
|
|
foreach ($components as $component) {
|
|
// Проверяем наличие файла shortcode.php в текущей подпапке
|
|
$componentController = $component . '/shortcode.php';
|
|
if (file_exists($componentController)) {
|
|
require_once $componentController;
|
|
}
|
|
|
|
// Рекурсивно вызываем функцию для каждой найденной подпапки
|
|
requireShortcodesRecursive($component);
|
|
}
|
|
}
|
|
|
|
requireShortcodes(get_template_directory() . '/modules'); // вызывается только тут
|