Cómo incluir todos los archivos de una carpeta en functions.php

25 may 2017, 10:45:36
Vistas: 19.7K
Votos: 1

Mi functions.php incluye otros archivos de funciones ubicados dentro de un directorio 'functions'.

Actualmente se agregan individualmente, con un formato como este ejemplo:

include('functions/login.php');

¿Cómo puedo modificar esto para incluir todos los archivos dentro del directorio 'functions', sin listarlos individualmente?

0
Todas las respuestas a la pregunta 2
7

Puedes incluir/requerir todos los archivos *.php de forma recursiva usando la siguiente función.

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

Alternativamente, también puedes usar la siguiente función.

$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();
}

PD: Obtuve la solución Desde Aquí.

25 may 2017 10:51:09
Comentarios

@ JItendra Rana ... Gracias. ¿Se puede modificar esto para incluir archivos de subdirectorios dentro del directorio 'functions'?

glvr glvr
25 may 2017 12:38:18

¿Quieres incluir todos los archivos recursivamente en todos los subdirectorios?

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

Actualicé la respuesta con una solución más elegante para directorios recursivos. Por favor revisa

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

@ JItendra Rana ... Gracias. Estoy recibiendo varios errores con el código actualizado, así que en su lugar usaré tu sugerencia anterior, que creo que era: foreach(glob('/add_path_to_theme/wp-content/themes/theme-name/functions/*.php') as $file) {include $file;} Si ese es tu código, podría valer la pena volver a agregarlo a tu actualización para que otros puedan acceder a él.

glvr glvr
30 may 2017 10:29:09

Respuesta actualizada. Por favor revisa.

JItendra Rana JItendra Rana
30 may 2017 10:48:48

¿Existen problemas de seguridad al hacer esto?

Ben Ben
1 may 2018 05:34:35

Bueno, es una respuesta amplia. Depende del tipo de aplicación / framework con el que estés trabajando. Y si los archivos pueden ser accesibles directamente o no. Mantente alejado de este tipo de cosas si no estás seguro de lo que estás haciendo.

JItendra Rana JItendra Rana
1 may 2018 09:09:11
Mostrar los 2 comentarios restantes
0

Así es como lo hice desde mi archivo functions.php en WordPress:

/**
 * Funciones
 * Requiere todos los archivos PHP en el directorio /functions/
 */
foreach (glob(get_template_directory() . "/functions/*.php") as $function) {
    $function= basename($function);
    require get_template_directory() . '/functions/' . $function;
}
25 may 2017 19:27:42