Ici, je vous présente une fonction PHP simple pour charger tous les fichiers PHP contenus dans un dossier de vos thèmes WordPress.
Code de l'autoloader
/**
* Use require_once on all PHP files in a path.
* No load file "index.php" and files who start with "_"
* @param string/array() $path Directory or array of directories to use for load files
*/
function wprock_autoload( $paths = array() ) {
if ( empty( $paths ) ) {
return;
}
if ( is_string( $paths ) ) {
$paths = array( $paths );
}
foreach ( $paths as $path ) {
if ( is_dir( $path ) ) {
$files = scandir( $path );
foreach ( $files as $file ) {
if (
// End with '.php'
( '.php' === substr( $file, -4) )
// Don't start with '_'
&& ( '_' !== substr( $file, 0, 1) )
// Is not index.php file
&& ( 'index.php' !== $file )
) {
require_once( $path . $file );
}
}
}
}
}
Initialiser et utiliser l'autoloader
Pour utiliser cet autoloader, il suffit d'appeler la fonction wprock_autoload()
en lui passant en argument le chemin du dossier qui contient les fichiers PHP à charger.
<?php
require_once get_template_directory() . '/inc/_autoloader.php';
wprock_autoload( get_stylesheet_directory(). '/inc/' );
<?php require_once get_template_directory() . '/inc/_autoloader.php'; wprock_autoload( get_stylesheet_directory(). '/inc/' );