自动包含子主题目录中的所有php文件

时间:2016-05-26 作者:Tim

我目前正在跨多个站点使用自定义子主题,并希望通过将特定自定义功能(如电子商务)拆分为单独的php文件,并根据需要包括相关的php文件(无需将其制作为插件),来模块化这些自定义功能,因为否则很难跨子主题的多个变体跟踪每个文件中的自定义。

为此,我希望能够将特定的php文件复制到子主题中的一个文件夹中,并自动包含这些文件。我将如何实现这一点?我试过了several solutions, 但在这种情况下,它们似乎不起作用。下面是我使用的代码示例:

function include_all_php($folder){
 foreach (glob("{$folder}/*.php") as $filename)
 {
    include $filename;
 }
}
include_all_php("includes"); // "includes" is the name of the folder in the child theme

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

我怀疑glob 需要当前工作目录才能工作,因此您可以尝试将文件的完整路径传递给现有函数。。。

include_all_php(dirname(__FILE__).\'/includes\');
或先设置当前工作目录:

setcwd(dirname(__FILE__).\'/\');
include_all_php(\'includes\');
或者,您也可以使用scandir:

$filepath = dirname(__FILE__).\'/includes/\';
$files = scandir($filepath);
foreach ($files as $file) {
    // match the file extension to .php
    if (substr($file,-4,4) == \'.php\') {include($filepath.$file);}
}