Autoloading em Child Theme

Estou tentando autoload o vendedor / autoload.php do meu tema pai para o meu tema filho.

Heres o que tentei, mas sem sucesso:

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

e

 include get_theme_root_uri() . '/beast/vendor/autoload.php'; 

Qualquer ajuda sobre isso seria incrível.

Obrigado Jake.

Solutions Collecting From Web of "Autoloading em Child Theme"

Então, há uma ou duas coisas a ter em mente:

  • Deve haver apenas uma pasta de fornecedor
  • Deve haver um compositor primário.json que esteja na raiz do seu projeto, que puxaria todas as dependencies
  • Você sempre verifica e carrega o carregador automático no diretório atual, não há garantia de que seja ou não está, como você pode ou não ser uma dependência você mesmo

Mas, mais importante, há mais informações sobre temas WP que você precisa saber que simplificam sua tarefa:

Em primeiro lugar, get_theme_root não é necessário, você pode usar get_template_directory() vez disso, e lhe dará o diretório do tema pai, portanto, não codifique o nome dos temas pai.

Isso deve simplificar seu código para isso:

 if ( file_exists( get_template_directory() . '/vendor/autoload.php' ) ) { require get_template_directory() . '/vendor/autoload.php'; } 

Mas mesmo isso não é necessário, o que nos leva à segunda informação:

No WordPress, os temas filhos functions.php são carregados, então os temas pai functions.php imediatamente depois.

Então, tudo o que você precisa fazer é certificar-se de que o tema principal carrega o carregador automático e que todo o seu código é executado em ações como deveria ser (exceto o auto-carregador em si). Desta forma, você não precisa carregar o autoloader de temas pai, ele o fará