J'essaie de charger automatiquement le fichier vendor/autoload.php de mon thème parent dans mon thème enfant.
voici ce que j'ai essayé mais en vain:
function beast_theme_setup() {
$var1 = get_theme_root_uri() . '/beast/vendor/autoload.php';
$var2 = get_theme_root_uri() . '/beast/functions.php';
$var = locate_template( array( $var1, $var2), true, false );
var_dump($var);
}
add_action( 'after_setup_theme', 'beast_theme_setup', 11 );
et
include get_theme_root_uri() . '/beast/vendor/autoload.php';
Toute aide à ce sujet serait incroyable.
Merci Jake.
Donc, il y a une ou deux choses à garder à l'esprit:
Mais surtout, il y a plus d'informations sur les thèmes WP que vous devez connaître et qui simplifient votre tâche:
Tout d'abord, get_theme_root
n'est pas nécessaire, vous pouvez utiliser get_template_directory()
à la place, et cela vous donnera le répertoire du thème parent, évitant ainsi de coder en dur le nom du thème parent.
Cela devrait simplifier votre code à ceci:
if ( file_exists( get_template_directory() . '/vendor/autoload.php' ) ) {
require get_template_directory() . '/vendor/autoload.php';
}
Mais même cela n'est pas nécessaire, ce qui nous amène à la deuxième information:
Dans WordPress, le thème enfant functions.php
est chargé, puis le thème parent functions.php
immédiatement après.
Il vous suffit donc de vous assurer que le thème parent charge l'autoloader et que tout votre code est exécuté comme il se doit (à l'exception de l'autoloader lui-même). De cette façon, vous n'avez pas du tout besoin de charger l'autoloader des thèmes parents, il le fera tout seul.