Cum să incluzi toate fișierele dintr-un director în functions.php?

25 mai 2017, 10:45:36
Vizualizări: 19.7K
Voturi: 1

Fișierul meu functions.php include alte fișiere de funcții situate într-un director 'functions'.

În prezent, acestea sunt adăugate individual, în formatul acestui exemplu:

include('functions/login.php');

Cum pot modifica acest lucru pentru a include toate fișierele din directorul 'functions', fără a le lista individual?

0
Toate răspunsurile la întrebare 2
7

Puteți include/require toate fișierele *.php recursiv folosind următoarea funcție.

foreach(glob(get_template_directory() . "/*.php") as $file){
    require $file;
}

Alternativ, puteți folosi și următoarea funcție.

$Directory = new RecursiveDirectoryIterator(get_template_directory().'functions/');
$Iterator = new RecursiveIteratorIterator($Directory);
$Regex = new RegexIterator($Iterator, '/^.+\.php$/i', RecursiveRegexIterator::GET_MATCH);

foreach($Regex as $yourfiles) {
    include $yourfiles->getPathname();
}

P.S Am obținut soluția De Aici.

25 mai 2017 10:51:09
Comentarii

@ JItendra Rana ... Mulțumesc. Se poate modifica acest cod pentru a include fișiere din sub-directoarele din interiorul directorului 'functions'?

glvr glvr
25 mai 2017 12:38:18

Dorești să incluzi toate fișierele recursiv din toate sub-directoarele?

JItendra Rana JItendra Rana
25 mai 2017 13:00:43

Am actualizat răspunsul cu o soluție mai elegantă pentru directoare recursive. Te rog verifică

JItendra Rana JItendra Rana
25 mai 2017 13:14:02

@ JItendra Rana ... Mulțumesc. Primesc diverse erori cu codul actualizat, așa că voi folosi în schimb sugestia ta anterioară, care cred că a fost: foreach(glob('/add_path_to_theme/wp-content/themes/theme-name/functions/*.php') as $file) {include $file;} Dacă acesta este codul tău, ar putea fi util să-l adaugi din nou în actualizarea ta, astfel încât și alții să-l poată accesa.

glvr glvr
30 mai 2017 10:29:09

Am actualizat răspunsul. Te rog verifică.

JItendra Rana JItendra Rana
30 mai 2017 10:48:48

Există vreo problemă de securitate în a face acest lucru?

Ben Ben
1 mai 2018 05:34:35

Ei bine, este un răspuns larg. Depinde de ce fel de aplicație / framework ai de-a face. Și dacă fișierele pot fi accesate direct sau nu. Ferește-te de astfel de lucruri dacă nu ești sigur ce faci.

JItendra Rana JItendra Rana
1 mai 2018 09:09:11
Arată celelalte 2 comentarii
0

Iată cum am făcut acest lucru din fișierul meu functions.php din WordPress:

/**
 * Funcții
 * Încarcă toate fișierele PHP din directorul /functions/
 */
foreach (glob(get_template_directory() . "/functions/*.php") as $function) {
    $function = basename($function);
    require get_template_directory() . '/functions/' . $function;
}
25 mai 2017 19:27:42