Substituir get_template_directory () no tema filho?

3

É possível substituir um get_template_directory() no arquivo functions.php do meu filho?

Eu quero fazer alterações no arquivo:

/**
* Load Custom Post types file.
*/
require get_template_directory() . '/inc/post-types.php';

Eu obviamente preferiria que meu trabalho não fosse sobrescrito quando eu atualizasse meu tema, então eu poderia cancelar o registro do arquivo principal e então registrar novamente o arquivo do meu filho no arquivo de funções do meu filho?

    
por Heather 27.06.2015 / 08:03

2 respostas

11

Resposta tardia, mas no Wordpress 4.7 duas novas funções foram introduzidas para resolver essa questão.

get_theme_file_path() (para caminhos de arquivo absolutos) e get_theme_file_uri() (para URLs) funcionam como get_template_part() em que eles procurarão automaticamente primeiro no tema filho desse arquivo, depois recorrerão ao tema pai.

No seu exemplo, você poderia reescrevê-lo usando o 4.7 para ficar assim:

/**
* Load Custom Post types file.
*/
require get_theme_file_path( 'inc/post-types.php' );

Mais informações aqui: enlace

    
por brianjohnhanna 09.12.2016 / 20:32
8

Você precisa usar get_stylesheet_directory_uri() em vez de get_template_directory() em seu tema filho.

Do códice do WordPress:

  

get_template_directory_uri ()

     

No caso de um tema infantil estar sendo   usado, o URI do diretório do tema pai será retornado.   get_template_directory_uri () deve ser usado para recursos que não são   destina-se a ser incluído no / over-montado por um tema infantil. Usar   get_stylesheet_directory_uri () para incluir recursos que se destinam   para ser incluído no / over-montado pelo tema filho.

     

get_stylesheet_directory_uri ()

     

No caso de um tema filho estar sendo usado, esta função retornará   o diretório do tema da criança, URI. Use get_template_directory_uri () para   evite ser substituído por um tema filho.

    
por James Barrett 27.06.2015 / 08:57