如何将一个文件夹及其子文件夹中的所有文件包含到unctions.php中?

时间:2017-07-17 作者:Tariq Ahmed

我尝试在Wordpress主题中的一个类别下包含多个php文件,文件/目录结构如下所示:

-Theme Folder
--Functions_Folder
 ---Folder_1
  ----File1.php
  ----File2.php
 ---Folder_2
  ----File1.php
  ----File2.php
 ---Folder_3
  ----File1.php
  ----File2.php
我想在我的主题函数中包含所有这些子函数。php和我使用了以下代码:

foreach(glob(get_template_directory() . "/Functions_Folder/*.php") as $file){
    require $file;
}
它和*配合得很好。php文件位于父文件夹--Functions\\u文件夹中。

是否有任何函数可以调用所有文件only 在--Functions\\u文件夹中,包括所有子文件夹*。php文件?

非常感谢。

1 个回复
最合适的回答,由SO网友:dbeja 整理而成

您需要对函数使用一些递归:

function require_all_files($dir) {
    foreach( glob( "$dir/*" ) as $path ){
        if ( preg_match( \'/\\.php$/\', $path ) ) {
            require_once $path;  // it\'s a PHP file so just require it
        } elseif ( is_dir( $path ) ) {
            require_all_files( $path );  // it\'s a subdir, so call the same function for this subdir
        }
    }
}

require_all_files( get_template_directory() . "/Functions_Folder" );

结束

相关推荐

$wp_FILESYSTEM返回空。依赖关系是什么?

我需要获取对$wp\\u filesystem对象的引用。在下面的测试中,var\\u dump($wp\\u filesystem)返回NULL。要正确设置$wp\\U文件系统,还需要哪些其他文件?我一直在期待,因为它在文件中调用。php,加载该文件就足以加载该对象。<?php require(\'../../../wp-blog-header.php\'); require(\'../../../wp-admin/includes/file.php\'); $m