WordPress 🤖 Autoloader PHP pour thèmes et extensions

Partager sur twitter
Partager sur linkedin
Partager sur facebook
Partager sur whatsapp
Partager sur email
Partager sur twitter
Partager sur linkedin
Partager sur facebook
Partager sur whatsapp
Partager sur email

Ici, je vous présente une fonction PHP simple pour charger tous les fichier PHP contenus dans un dossier de vos thème 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/' );

  La newsletter wpRock : Du contenu sur le développement et la création web
Julien .MA Jacob
Développeur WordPress
Julien MA Jacob - Développeur WordPress
🧙‍♂️ Passionné par le web et la programmation avec toujours plein de projets en tête 👨‍💻 | Page à propos
  Discussion autour de l'article
S’abonner
Notification pour
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 ?