Como fazer com que get_template_part sempre verifique primeiro o tema filho?

8

Como forçar o WP a sempre verificar primeiro a pasta do tema filho durante a execução get_template_part?

Exemplo: cargas temáticos criança get_template_part('content', 'inventory')em single.php. Como todos os temas filhos (e existem muitos) compartilham a mesma base de modelo de inventário comum, o arquivo content-inventory.phpestá no tema pai. Por enquanto, tudo bem.

Gostaria de adicionar uma pequena seção ao referido modelo de inventário que será exclusivo para cada tema filho. Adicionar get_template_part('content', 'inventory-special')ao content-inventory.phpnão verificará primeiro o diretório do tema filho.

m-torin
fonte
3
Aos dois que votaram negativamente na minha resposta e não comentaram o porquê, obrigado por nada. Como alguém deve melhorar a si próprio com críticas negativas?
M-torin

Respostas:

5

Sim, por padrão. A get_template_part()função usa locate_template()qual cascata através dos arquivos de modelo em ordem de especificidade e stylesheetpath / templatepath.

Portanto, se o seu Tema filho incluir um content-inventory.php, ele get_template_part()será incluído; Caso contrário, ele procurará content-inventory.phpno Tema principal. Se não encontrar, procurará content.phpprimeiro na criança e depois nos pais.

EDITAR:

Tentando entender o que você quer dizer; por favor, esclareça se estou entendendo mal ...

Você deseja incluir um novo arquivo de peça de modelo em um arquivo de modelo de tema pai chamado content-inventory.php, certo?

A única maneira, AFAIK, de fazer isso é copiar content-inventory.phppara o seu Tema filho e adicionar a nova get_template_part()chamada quando necessário.

Se um arquivo nomeado content-inventory.phpfor incluído nos temas pai e filho, o WordPress sempre usará a versão do tema filho , se incluído get_template_part().

Chip Bennett
fonte
@Kaiser, @Chip Bennett: O WP obviamente verificará o tema principal content-inventory.php. O Codex e a experiência simples deixam isso claro. No entanto, se o arquivo que está sendo procurado (nível 2) estiver na pasta do tema pai, o WP não verificará novamente o tema filho por um get_template_partconteúdo contido no arquivo que está sendo procurado (uma inclusão de terceira camada). Isso funcionou de maneira diferente para você?
m-torin
Não entendi sua pergunta / problema. Para qualquer nome de arquivo de modelo, o WordPress sempre verifica primeiro o Tema filho . Você pode explicar o que você quer dizer com arquivos de segunda e terceira camada?
Chip Bennett