web-dev-qa-db-fra.com

Inclure automatiquement tous les fichiers php dans un répertoire de thème enfant

J'utilise actuellement un thème enfant personnalisé sur plusieurs sites et souhaiterais modulariser des fonctionnalités personnalisées particulières (par exemple, le commerce électronique) en les séparant dans des fichiers php individuels, et en incluant les fichiers pertinents au besoin (sans les transformer en plugins), car sinon Il est difficile de suivre les personnalisations de chaque fichier à travers plusieurs variantes du thème enfant.

Pour ce faire, j'aimerais pouvoir copier des fichiers php particuliers dans un dossier du thème enfant et les inclure automatiquement. Comment y arriver? J'ai essayé plusieurs solutions , mais elles ne semblent pas fonctionner dans ce contexte. Voici un exemple de code que j'ai utilisé:

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
Tim

Je suppose que glob a besoin du répertoire de travailcurrentpour fonctionner, vous pouvez donc essayer de passer le chemin complet du fichier à la fonction existante que vous avez ...

include_all_php(dirname(__FILE__).'/includes');

Ou définissez d'abord le répertoire de travail actuel:

setcwd(dirname(__FILE__).'/');
include_all_php('includes');

Sinon, vous pouvez aussi utiliser 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);}
}
0
majick