WordPress 🤖 Autoloader PHP pour thèmes et extensions

Illustration : code source, sublime text
twitter-img / 1024 x 512
Illustration : code source, sublime text
twitter-link / 520 x 254
Illustration : code source, sublime text
facebook / 1200 x 630

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/' );

Julien MA Jacob - Développeur WordPress
Développeur expert WordPress
Julien MA Jacob - Développeur WordPress

Passionné par le web et la programmation. Je propose mes services de développeur pour vos sites WordPress

  Discussion autour de l'article
guest
1 Commentaire
Le plus populaire
Le plus récent Le plus ancien
Commentaires en ligne
Afficher tous les commentaires
Mike

Pourquoi ne pas avoir utilisé tout simplement la fonction PHP spl_autoload_register ?

Pourquoi ne pas utiliser l'autoloader de composer ?