Come includere tutti i file all'interno di una cartella in functions.php?

25 mag 2017, 10:45:36
Visualizzazioni: 19.7K
Voti: 1

Il mio functions.php include altri file di funzioni situati all'interno di una cartella 'functions'.

Attualmente vengono aggiunti individualmente, con questo formato di esempio:

include('functions/login.php');

Come posso modificare questo codice per includere tutti i file all'interno della directory 'functions', senza doverli elencare uno per uno?

0
Tutte le risposte alla domanda 2
7

Puoi includere/richiedere tutti i file *.php in modo ricorsivo utilizzando la seguente funzione.

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

In alternativa puoi utilizzare anche la seguente funzione.

$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 Ho trovato la soluzione Da Qui.

25 mag 2017 10:51:09
Commenti

@ JItendra Rana ... Grazie. È possibile modificarlo per includere i file dalle sotto-directory all'interno della directory 'functions'?

glvr glvr
25 mag 2017 12:38:18

Vuoi includere tutti i file ricorsivamente in tutte le sotto-directory?

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

Ho aggiornato la risposta con una soluzione più elegante per le directory ricorsive. Per favore, controlla

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

@ JItendra Rana ... Grazie. Sto ricevendo vari errori con il codice aggiornato, quindi utilizzerò invece il tuo suggerimento precedente, che penso fosse: foreach(glob('/add_path_to_theme/wp-content/themes/theme-name/functions/*.php') as $file) {include $file;} Se è il tuo codice, potrebbe valere la pena riaggiungerlo al tuo aggiornamento così che altri possano accedervi.

glvr glvr
30 mag 2017 10:29:09

Ho aggiornato la risposta. Per favore controlla.

JItendra Rana JItendra Rana
30 mag 2017 10:48:48

Ci sono problemi di sicurezza nel fare questo?

Ben Ben
1 mag 2018 05:34:35

È una risposta ampia. Dipende dal tipo di app/framework con cui hai a che fare. E se i file possono essere accessibili direttamente o meno. Stai alla larga da questo tipo di cose se non sei sicuro di quello che stai facendo.

JItendra Rana JItendra Rana
1 mag 2018 09:09:11
Mostra i restanti 2 commenti
0

Ecco come l'ho fatto dal mio file functions.php in WordPress:

/**
 * Funzioni
 * Includi tutti i file PHP nella directory /functions/
 */
foreach (glob(get_template_directory() . "/functions/*.php") as $function) {
    $function = basename($function);
    require get_template_directory() . '/functions/' . $function;
}
25 mag 2017 19:27:42