web-dev-qa-db-de.com

Automatisch alle PHP-Dateien in ein untergeordnetes Themenverzeichnis aufnehmen

Ich verwende derzeit ein benutzerdefiniertes untergeordnetes Thema auf mehreren Websites und möchte bestimmte benutzerdefinierte Funktionen (z. B. E-Commerce) modularisieren, indem ich sie in einzelne PHP-Dateien aufteile und die relevanten nach Bedarf einbinde (ohne sie in Plugins umzuwandeln), da dies sonst der Fall ist Es ist schwierig, die Anpassungen in jeder Datei über mehrere Variationen des untergeordneten Themas hinweg zu verfolgen.

Dazu möchte ich in der Lage sein, bestimmte PHP-Dateien in einen Ordner im untergeordneten Thema zu kopieren und diese automatisch einzuschließen. Wie würde ich das erreichen? Ich habe versucht mehrere Lösungen , aber sie scheinen in diesem Kontext nicht zu funktionieren. Hier ist ein Beispiel eines Codes, den ich verwendet habe:

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

Ich vermute, dass glob das aktuelle Arbeitsverzeichnis benötigt, um zu funktionieren, also könnten Sie versuchen, den vollständigen Pfad der Datei an die vorhandene Funktion zu übergeben, die Sie haben ...

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

Oder stellen Sie zuerst das aktuelle Arbeitsverzeichnis ein:

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

Alternativ können Sie auch scandir verwenden:

$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