Você tem administrado seu site WordPress há algum tempo e ele tem feito o que você precisa. Mas agora, decidiu que precisa personalizá-lo.

Ou talvez você esteja criando seu site com um tema que baixou do diretório de temas ou que você comprou e percebeu que ele não funciona exatamente da forma que deveria.

E então, o que você faz?

Pode tanto encontrar um plugin que oferecerá o tipo de personalização que você precisa, quando trocá-lo por um tema novo. Mas e se estiver satisfeito com o tema atual e não consegue encontrar um plugin que adicione a funcionalidade necessária?

Resposta: você precisará personalizar seu tema. E as melhores práticas dizem que isso deve ser feito através de temas filhos no WordPress.

Neste post, mostrarei exatamente como criar um tema filho no WordPress, como usá-lo para personalizar seu site e como os temas filhos funcionam. Também explicarei o conceito dos temas pais e descreverei como o tema pai de seu site interage com o tema filho:

Antes de nos aprofundarmos em criar um tema filho, vamos identificar os três métodos que você pode usar para personalizar seu site WordPress.

Se você não quer perder todas as suas personalizações, os temas filhos são sua melhor opção 👶 Aprenda a criá-los com nosso guia estendido! Click to Tweet

Métodos Para Personalizar o WordPress

Personalizar um tema vem acompanhado de riscos. Se você edita o código de um tema de terceiros (que não seja um que foi comprado em um marketplace, por exemplo), na próxima atualização dele todas as suas alterações serão perdidas. Isso significa que não só seu site voltará à forma como ele era, como todo o seu trabalho será desperdiçado.

Existem três formas de personalizar seu site WordPress:

Vamos analisar cada uma delas por vez.

Editando Seu Tema

Se seu site estiver usando um tema WordPress personalizado, o que significa que ele foi desenvolvido especialmente para você, existe a opção de editá-lo com segurança, porque você não corre o risco de perder suas personalizações na próxima vez que o tema for atualizado.

Ao invés disso, se você ou seu desenvolvedor fizerem mudanças no tema no futuro, será a versão personalizada dele que será editada, não a versão original que estava presente antes das alterações.

Isso não significa que editar seu tema não acompanhe riscos. Se você não tem experiência com a codificação de temas, talvez seja mais seguro criar um tema filho (veremos como fazer isso em breve). Aqui está o que eu faço: tenho um tema base que uso em todos os meus sites, com um layout, ganchos e funções padrão e, em seguida, o personalizo de acordo com cada site com um tema filho.

Se você for editar seu tema diretamente, certifique-se de manter um backup do tema original e não edite o tema no site ao vivo (use um site de desenvolvimento ou um site de teste) e utilize um controle de versão para monitorar suas mudanças.

E se você estiver usando um tema de terceiros, não deve nunca editá-lo diretamente. Ao invés disso, use um plugin ou crie um tema filho.

Adicionando um Plugin

A segunda opção para personalizar um tema WordPress é instalar ou codificar um plugin.

Se as personalizações que você deseja fazer são funcionais ao invés de alterações no design, um plugin é um meio muito mais apropriado de realizá-las. Portanto, se você deseja adicionar código extra, talvez seja melhor criar um plugin.

Plugins não precisam ser grandes ou complexos: se você precisa adicionar um pouco de código ao arquivo functions.php em seu tema, crie um plugin simples para adicionar algumas linhas extras de código ao seu site. Um bom exemplo é registrar um tipo personalizado de post.

Pode ser tentador adicionar código ao arquivo functions.php do seu tema, mas adicionar um tipo de post é uma alteração funcional em seu site, não de design. Se quiser trocar de tema no futuro, você não perderá esse tipo de post e todos os que posts criados nessa categoria. É por isso que você deveria instalar ou criar um plugin em seu lugar.

Em alguns casos, é possível encontrar um plugin existente que faz o que é necessário, mas em outros você precisará fazer a codificação por conta própria.

O repositório WordPress

O repositório WordPress

Se estiver em dúvida se deve criar um plugin ou personalizar seu tema (ou tema filho), faça a si mesmo a seguinte pergunta: se eu quiser fazer uma mudança de design em meu site no futuro e instalar um novo tema WordPress, vou querer que essa mudança continue válida? Se a resposta for sim, significa que a mudança é funcional e não estética. Nesse caso, você deve optar por um plugin.

Criando um Tema Filho

A terceira opção para personalizar um tema WordPress é criar um tema filho.

Aqui estão alguns casos nos quais você usaria um tema filho:

  • Você deseja fazer alterações no design do seu site, não em sua funcionalidade.
  • Seu site está usando um tema de terceiros ou um tema que você deseja usar novamente em seu estado atual.
  • Você não deseja editar diretamente seu tema caso ele apresente problemas (talvez você não seja um desenvolvedor experiente).
  • Seu site está usando um tema projetado para ser um tema pai, como um framework. Esses são temas com muitas opções de personalização, como ganchos, criadas para que você as adicione com seu próprio tema filho.

Temas filhos são uma forma eficiente e segura de adicionar personalizações ao seu site. Por isso, vamos nos aprofundar neles.

O que é um Tema Filho no WordPress?

Então, o que exatamente é um tema filho no WordPress? Como ele funciona?

Um tema filho é um tema que funciona em conjunto com outro tema, que é chamado de tema pai.

Ele contém algumas instruções específicas que informam ao WordPress que se trata de um tema filho e qual é seu tema pai. Assim, o WordPress usa o código do tema pai na maioria das situações, mas o substitui com o código do tema filho quando necessário.

Os Arquivos do Tema Filho no WordPress

Todo tema filho no WordPress precisa ter, no mínimo, dois arquivos: uma folha de estilos e um arquivo de funções. A folha de estilos contém comentários de texto em seu topo que informam ao WordPress que se trata de um tema filho e qual é seu tema pai. O arquivo de funções inclui a função que consulta a folha de estilos do tema pai.

Observação: Você poderá se deparar com guias que te dirão para fazer a consulta da folha de estilos do tema pai a partir da folha de estilos do tema filho. Essa não é mais a forma correta de fazer isso e você deve usar a consulta no arquivo de funções. Mostrarei como fazer isso mais adiante.

Seu tema filho não precisa incluir mais nenhum arquivo. Ao contrário do tema pai, ele não precisa de um arquivo index.php como apoio se não houver mais nenhum arquivo específico no tema. Isso ocorre porque se um arquivo de template não existe no tema filho, o WordPress usará o arquivo do próprio tema pai.

Portanto, dependendo do que você deseja que seu tema filho faça, precisará adicionar código extra na folha de estilos, no arquivo de funções ou criar arquivos extras no tema filho que se sobreponham àqueles do tema pai. Isso pode incluir um ou mais:

  • Arquivos de template para sobrepor o mesmo arquivo no tema pai, como o page.php, quando quiser personalizar a exibição das páginas estáticas.
  • Partes do template, como header.php ou footer.php, quando você deseja personalizar essas partes no design do site.
  • Partes extras do template consultadas a partir dos arquivos de template em seu tema filho. Por isso, se você deseja personalizar o cabeçalho quando as páginas estáticas são exibidas, pode criar um arquivo em seu tema filho chamado header-page.php e um arquivo de template chamado page.php, que seria sobreposto ao page.php do tema pai. Este arquivo de template seria idêntico ao do tema pai, com exceção da consulta presente no arquivo do cabeçalho (header), que seria feita a partir do arquivo header-page.php, ao invés do header.php.
  • Arquivos extras de inclusão para adicionar funcionalidades. Se você deseja adicionar muito código funcional e organizá-lo, pode criar arquivos de inclusão para cada conjunto de funções e, em seguida, consultá-los a partir do arquivo functions.php do tema filho. Por exemplo, se você deseja adicionar opções extras ao Customizer, pode adicionar um arquivo de inclusão chamado customizer.php em seu tema filho e consultá-lo a partir do arquivo de funções do próprio tema filho.

Mas se você adicionar arquivos e funções, como o WordPress sabe qual deve usar? Os do tema pai ou do tema filho? É sobre isso que falaremos na sequência.

Como o WordPress Escolhe os Arquivos de Template

A forma como o WordPress escolhe os arquivos de template de seu site ao exibir o conteúdo é através de uma consulta da hierarquia do template.

A hierarquia do template no WordPress

A hierarquia do template no WordPress

O WordPress usa essa hierarquia para trabalhar com os arquivos de template em seu tema e encontrar a opção correta para usar ao exibir determinado tipo de conteúdo. Ele começa pelo topo (no lado esquerdo da imagem acima) e olha para cada um dos arquivos de determinado tipo de conteúdo por vez. Quando encontra um arquivo que exibirá tal conteúdo, ele o utilizará.

Imagine que seu tema tem um arquivo archive.php e outro category.php, mas nenhum tag.php. Ao exibir um arquivo de categoria, o WordPress usará o category.php, pois é mais específico para esse tipo de conteúdo. Ao exibir um arquivo de tags, ele usará o archive.php.

Se o WordPress não encontra um arquivo de template para determinado tipo de conteúdo, por padrão ele se voltará ao arquivo index.php, que é o motivo pelo qual todos os temas individuais (ou seja, que não são um tema filho), precisam ter um arquivo index.php.

O mesmo se aplica a posts e páginas individuais. Digamos que seu tema tenha um arquivo singular.php, que é usado para posts individuais em qualquer tipo de publicação (incluindo páginas e tipos personalizados de post). Ele também tem um arquivo page.php. Ao exibir uma página individual, ele usará o page.php. Ao exibir um post, usará singular.php. E se você registrar um tipo de post personalizado e não adicionar um arquivo de template para ele, usará novamente o singular.php.

Quando você usa um tema filho, o WordPress ainda assim utiliza a hierarquia de template para decidir qual arquivo deve ser considerado para exibir o conteúdo em seu site. Ele observa os arquivos tanto no tema pai quanto no tema filho e usa o primeiro arquivo que aparecer na ordem hierárquica.

Então, imagine que seu tema filho tem um arquivo singular.php e um post.php, enquanto o tema pai possui um page.php e o index.php. Ao exibir um post individual, o WordPress usa o post.php do tema filho. Ao exibir uma página, ele usa o page.php do tema pai. E ao exibir um post individual de um tipo personalizado, ele usará o singular.php do tema filho.

Mas e se tanto o tema filho quanto o tema pai possuírem instâncias do mesmo arquivo?

Vamos imaginar que você adicionou um arquivo page.php ao tema filho do exemplo anterior. Como se trata de um tema filho, ele se sobrepõe ao mesmo arquivo do tema pai. Assim, ao exibir uma página individual, o WordPress usaria o novo arquivo page.php do tema filho.

Por isso que criar um tema filho permite personalizar o tema pai. Se você adiciona uma cópia do arquivo de template a partir do seu tema pai para seu tema filho e o edita para incluir as personalizações que deseja fazer, o WordPress usará esse novo arquivo de template ao invés daquele que faz parte do tema pai. Isso significa que suas personalizações serão usadas quando o conteúdo for exibido, sem que você tenha editado o tema pai. Excelente!

Como o WordPress Roda Funções dos Temas Pais e Temas Filhos

E se você não quiser fazer personalizações nos arquivos de template do seu tema, mas sim nas funções?

Também é possível fazer isso. Primeiro, você precisa se convencer que a melhor forma de fazer isso é através do tema filho, não de um plugin. Por exemplo, talvez queira editar uma função que já esteja presente no tema pai, como a função que gera o cólofon (nota final) no rodapé.

Então, você adiciona a nova função ao arquivo de funções de seu tema filho ou em um arquivo de inclusão que é consultado a partir do arquivo de funções.

Para garantir que sua nova função se sobreponha à funcionalidade do seu tema pai, é necessário entender como isso funciona. Existem três formas de fazê-lo:

  • Escrever uma nova função com o mesmo nome como se fosse uma função conectável em seu tema pai.
  • Desativar a função em seu tema pai no gancho ao qual ela foi anexada e escrever uma nova função para substituí-la.
  • Escrever uma nova função com uma prioridade mais alta que a original e consultá-la através do mesmo gancho, o que significa que ela será chamada após sua versão original e, assim, poderá se sobrepor a ela ou ampliá-la.

Vamos examinar como você pode fazer tudo isso mais adiante no post. Mas primeiro, vejamos os cenários em que você deveria ou não usar um tema filho.

Quando Usar um Tema Filho no WordPress (Vantagens)

Agora você sabe o que é tema filho e como pode usá-los para que se sobreponham aos arquivos de template ou funções em seu tema pai.

Para recapitularmos rapidamente, você deve usar um tema filho se estiver utilizando um tema em seu site e deseja realizar uma ou mais das seguintes ações:

  • Editar um ou mais arquivos de template.
  • Adicionar funções extras que são relacionadas à exibição e não à funcionalidade.
  • Sobrepor uma ou mais funções do tema pai.
  • Adicionar arquivos extras de template.

Algumas vantagens incluem:

  • Extensão e personalização facilitadas: Obviamente, um tema filho estende as funcionalidades de seu tema pai. Você já tem um template pronto para usar através do tema pai e tudo o que precisa fazer é criar um arquivo style.css para seu tema filho e adicionar ajustes de personalização conforme suas necessidades.
  • Atualizações sem complicações: À medida que o WordPress evolui, os temas e plugins precisam ser atualizados em determinados momentos. Se você fizer ajustes personalizados e alterações em seu tema primário, poderá acabar perdendo todas essas mudanças se atualizá-lo. Assim, o mais recomendado é fazer tais alterações no tema filho, de forma que se algum dia você precise atualizar o tema pai, não correrá o risco de perder suas personalizações.

E quando você não deve usar um tema filho?

Quando Não Usar um Tema Filho (Desvantagens)

Existem situações em que você não precisa usar um tema filho e deve utilizar um método diferente para personalizar seu site. São elas:

  • Se seu tema foi desenvolvido por você mesmo (ou alguém o criou para você) e não será usado em nenhum outro lugar. Apenas edite o tema, certificando-se de usar o controle de versão.
  • Se as personalizações que você deseja fazer são funcionais, como adicionar um tipo personalizado de post, e deseja mantê-las caso mude de tema futuramente. Nesse caso, use um plugin.

Algumas desvantagens do tema filho incluem:

  • Escolher o tema pai ideal: Nem todos os temas funcionam bem como temas mãe. Alguns deles, por exemplo, podem não ser atualizados regularmente e tendem a não apresentar as funcionalidades mais recentes. De forma similar, nem todos os temas WordPress são criados com tema filho em mente e, portanto, podem ser candidatos ruins para funcionar como um tema pai. Você precisa escolher o tema pai perfeito para expandi-lo da forma adequado e fazer com que funcione como a fundação para seu tema filho.
  • Esforços de personalização: Um tema filho basicamente busca estender e personalizar um design de template existente. Assim, se você já criou um website em torno do seu tema pai, talvez precise reconsiderar a personalização de elementos, como menus, opções do tema, barras laterais, cabeçalho, entre outros, ao migrar para um tema filho.

Agora que você sabe quando usar (ou não) um tema filho, chegou a hora de trabalhar e aprender como criar um tema filho no WordPress.

Como Criar um Tema Filho no WordPress

Configurar um tema filho básico no WordPress envolve a criação de dois arquivos: a folha de estilos e o arquivo de funções. Vamos falar sobre ambos.

A Folha de Estilos

Antes de criar seu arquivo, você precisa criar uma pasta para manter seu tema. Ela ficará localizada dentro da pasta wp-content/themes da sua instalação do WordPress.

Lembre-se: não faça isso em seu site de produção. Adicione o código em um site de desenvolvimento primeiro e, depois, teste-o em seu site de testes. Quando estiver satisfeito com o resultado, você pode fazer a transferência para seu site de produção. Todos os planos de hospedagem Kinsta incluem o ambiente de testes.

Na pasta do seu novo tema, crie um arquivo chamado style.css. Adicione as linhas a seguir neste arquivo:

/*
Theme Name:  My Child Theme. Child for Twenty Nineteen.
Theme URI:  https://rachelmccollin.com
Description:  Theme to support tutsplus tutorial. Child theme for the Twenty Nineteen theme.
Author:  Rachel McCollin
Textdomain:  mccollin
Author URI:  https://rachelmccollin.com/
Template:  twentynineteen
Version:  1.0
License:  GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html                 
*/

Esse texto é formado por comentários. Ele não é um código que roda em seu site ou que fornece algum tipo de funcionalidade. Ao invés disso, ele informa ao WordPress sobre detalhes do tema. Você precisa desse tipo de texto em todos os temas, do contrário o WordPress não os reconhecerá como temas.

Vamos entender cada uma dessas linhas para identificar o que elas fazem:

  • Theme Name: O nome exclusivo do tema.
  • Theme URI: Onde os usuários podem encontrar o código ou a documentação do tema.
  • Description: Texto descritivo para ajudar os usuários a entender o que o tema faz.
  • Author: Seu nome.
  • Textdomain: Usado para internalização. Utiliza o domínio de texto como o segundo parâmetro para quaisquer funções de internalização.
  • Author URI: O website do autor.
  • Template: A pasta onde o tema pai está armazenado. Use o nome da pasta e não o nome do tema em questão. Sem esta linha, seu tema não funcionará como um tema filho.
  • Version: O número da versão.
  • License: A licença, que deve ser GNU. [link]
  • License URI: O link com informações sobre a licença.

A linha mais importante para um tema filho é a “Template”. Sem ela, o tema não funcionará como um tema filho. Apenas tema filho incluem esta linha.

Adicione esse texto à folha de estilos do seu tema, fazendo as edições necessárias com suas próprias informações. Você precisará editar a linha “Template” para adicionar a pasta em que seu tema existente está armazenado, uma vez que ele será o tema pai.

Em seguida, salve o arquivo. Se estiver vendo a tela de detalhes do tema em seu site, observará as seguintes informações sendo exibidas:

A página do tema no WordPress sem uma captura de tela

A página do tema no WordPress sem uma captura de tela

Não parece nada de especial, porque não contém uma captura de tela. Essa é uma imagem que transmite a ideia do visual do tema. A menos que seu tema se torne muito diferente do tema pai, apenas copie o arquivo screenshot.png do seu tema pai para a pasta do tema filho.

A página do tema no WordPress com uma captura de tela

A página do tema no WordPress com uma captura de tela

O Arquivo de Funções

O próximo passo é adicionar um arquivo de funções ao seu tema filho. Você precisa fazer isso para que seja capaz de consultar a folha de estilos do tema pai. Sem ela, seu site não teria nenhum estilo e ficaria semelhante a este:

Nossa página inicial sem CSS

Nossa página inicial sem CSS

Horrível. Tenho certeza que você concorda comigo! Portanto, vamos adicionar o estilo para que ele fique com a aparência correta.

Na pasta do seu tema filho, adicione um arquivo chamado functions.php. Abra-o e adicione o seguinte código:

<?php
/* enqueue script for parent theme stylesheeet */        
function childtheme_parent_styles() {
 
 // enqueue style
 wp_enqueue_style( 'parent', get_template_directory_uri().'/style.css' );                       
}
add_action( 'wp_enqueue_scripts', 'childtheme_parent_styles');

Ele usa a função wp_enqueue_style() para consultar a folha de estilos do tema pai, enquanto a função get_template_directory_uri() localiza onde o arquivo está armazenado. A função está dentro de uma função que criei, chamada de kinsta_parent_styles(), que está atrelada ao gancho wp_enqueue_scripts.

Talvez você esteja se perguntando por que ele use uma função chamada wp_enqueue_scripts ao invés de wp_enqueue_styles. Isso ocorre porque wp_enqueue_scripts é usado tanto para scripts quanto para estilos e não é um gancho como wp_enqueue_styles.

Sinta-se à vontade para editar meu código e adicionar seu próprio prefixo para nomear sua função. Usei “childtheme” como meu prefixo, para assegurar que minha função não entre em conflito com outras funções do tema pai ou de algum plugin.

Depois, salve seu arquivo.

Como Ativar Seu Tema Filho no WordPress

Quando seu tema filho estiver pronto, você precisará ativá-lo. Se estiver preocupado de que a ativação do tema filho desativará o tema pai, não se aflija: o WordPress saberá usar os arquivos do tema pai, a menos que você adicione novos arquivos ao tema filho que se sobreponham a eles. Até o momento, você não adicionou nenhum artigo ou função extra ao tema filho, portanto seu site funcionará exatamente da mesma forma que funcionaria com o tema pai ativado.

Lembre-se: faça isso em seu site de desenvolvimento ou de testes primeiro. Não ative seu tema filho no site de produção até que o tenha testado.

No painel de administração do WordPress, vá até Aparência > Temas. Lá, você encontrará seu tema filho listado entre os temas instalados para seu site.

Selecione o tema e clique no botão Ativar. Isso fará com que seu tema filho seja ativado. Agora, ao visitar seu site, ele terá o mesmo visual de antes:

A página inicial do site

A página inicial do site

Ele tem a mesma aparência, porque você ainda não adicionou nenhuma personalização. Mas agora há um tema filho em funcionamento. Muito bem!

Como Personalizar Seu Tema Filho no WordPress

Agora que você tem um tema filho em funcionamento em seu site WordPress, chegou a hora de adicionar suas personalizações. Mostrarei como é possível adicionar arquivos de template para eles que se sobreponham às suas versões equivalentes do tema pai, como adicionar estilo ao seu tema filho e como adicionar novas funções.

Vamos começar pelos arquivos de template.

Como Adicionar Arquivos de Template ao Seu Tema Filho no WordPress

Já vimos como o WordPress escolhe qual arquivo de template deve ser usado quando o conteúdo é exibido em seu site. Existem dois fatores a serem lembrados:

  • O WordPress usará o arquivo que aparece primeiro na hierarquia, seja ele do tema filho ou pai.
  • Se um arquivo de template (ou uma parte do template, como header.php) com o mesmo nome existe tanto no tema pai quanto no tema filho, o WordPress usará a versão do tema filho.

Para adicionar personalização, acredito que seja mais fácil começar com a criação de uma cópia de um arquivo relevante a partir do tema pai, adicioná-la ao tema filho e só então começar a editá-la.

Isso varia de acordo com o fato de que o arquivo no tema filho terá o mesmo nome do arquivo do tema pai, se será um novo arquivo exibindo um tipo de conteúdo diferente ou ainda se está mais alto na hierarquia.

Por isso, se eu estiver adicionando uma nova versão do page.php ao meu tema filho e que será sobreposto ao page.php do meu tema pai, copio o page.php do meu tema pai para o tema filho e começo a editá-lo. Certifique-se de copiar apenas o arquivo: não o mova, pois você não deseja que nenhuma mudança seja realizada no tema pai.

E se, por exemplo, eu quiser ter um template de página personalizada no meu tema filho, simplesmente copio o page.php para meu tema filho, o renomeio e depois o edito.

Dessa forma, você garante que todos os aspectos do arquivo que não precisam ser personalizados continuarão funcionando corretamente. O mesmo se aplica às demais partes do template.

Como Adicionar Estilos ao Seu Tema Filho no WordPress

Você também pode adicionar estilos ao arquivo style.css do seu tema filho, o que expandirá ou substituirá o estilo definido na página de estilos do tema pai.

O WordPress consultará a folha de estilos do tema pai primeiro e, depois, a folha de estilos do tema filho. Isso significa que se você adiciona estilização ao tema filho que vise os mesmos elementos que o tema pai, ela será sobreposta ao estilo do tema pai, desde que utilize os mesmos seletores.

Imagine que você deseja alterar a cor do título do site. No tema pai, ele pode ser estilizado da seguinte forma:

h1.site-title {
 color: #000;
}

Para sobrepô-lo em seu tema filho, você adicionaria o seguinte:

h1.site-title {
 color: #303030;
}

Como o navegador o encontrará após o estilo do tema pai, ele o substituirá e será usado em seu lugar.

Como Adicionar Funções ao Seu Tema Filho no WordPress

Então, você criou um tema filho no WordPress sem o intuito de editar qualquer arquivo de template, mas para adicionar funcionalidades extras ou substituir uma ou mais funções do tema pai.

Escrever funções em seu tema filho é um pouco mais complicado que adicionar arquivos de template, mas ainda assim é algo possível.

Se quiser adicionar uma nova função que não interaja com qualquer uma das funções em seu tema pai, você pode ir em frente e fazer isso. Apenas adicione a função no arquivo functions.php em seu tema filho, anexe-o ao gancho relevante de ação ou filtro e estará pronto.

Mas se você planeja substituir ou editar uma função no tema pai, precisará entender os métodos que podem ser usados para fazer isso. Existem três formas como você pode substituir a função de um tema pai em seu tema filho:

  • Se seu tema pai for conectável, simplesmente escreva outra função em seu tema filho com o mesmo nome e o WordPress rodará essa função, ao invés daquela que está em seu tema pai.
  • Se você deseja impedir que uma função do tema pai rode, pode escrever uma função em seu tema filho que a desvincule do gancho ao qual está anexada.
  • Se deseja expandir uma função, você pode adicionar outra função (com um nome diferente) em seu tema filho e se certificar de que ele rodará após sua versão equivalente no tema pai.

Vejamos como é possível fazer cada uma dessas ações.

Substituir uma Função Conectável

Uma função conectável é identificada por uma verificação condicional. Ela confere se outra função com o mesmo nome já foi ativada. Em caso positivo, ela não roda a função.

O WordPress ativará funções do tema filho antes daquelas que estão presentes no tema pai. Se ele se depara com uma função conectável no tema pai e você adicionou uma função ao tema filho com o mesmo nome, a função conectável não rodará.

Um exemplo é a função que gera o cólofon do tema Storefront para sites WooCommerce. Aqui está a função sem seus conteúdos:

if ( ! function_exists( 'storefront_credit' ) ) {
 function storefront_credit() {
  // contents for function here
 }
}

Se você quisesse substitui-la, escreveria outra função com o mesmo nome (storefront_credit()) e a vincularia com o mesmo gancho que o tema pai.

Desvinculando uma Função do Tema Pai

Se a função do tema pai não for conectável, você ainda poderá impedir que ela rode. Imagine que seu tema pai tem uma função chamada parent_function(), que é vinculada ao gancho init com uma prioridade 20. Você deseja impedir que ela rode, portanto pode substituí-la com uma função que criou.

Aqui está como a função do tema pai se pareceria:

function parent_function() {
 //conteúdo da função aqui
}
add_action( ‘init’, ‘parent_function’, 20 );

Para desvinculá-la, você adicionaria este código ao seu tema filho:

function remove_parent_function() {
 remove_action( ‘init’, ‘parent_function’, 20 );
}
add_action( ‘wp_head’, ‘remove_parent_function’ );

Perceba que você vincula sua segunda função ao gancho wp_head, que roda no topo de cada página, sendo necessário incluir o mesmo valor para o parâmetro de prioridade como na função original. Se a função original add_action() não tem uma prioridade, você pode omiti-la da função remove_action() do seu tema filho.

Observação: se a função original foi vinculada a um gancho de filtro ao invés de um gancho de ação, você usaria o remove_filter()da mesma forma.

Ampliando uma Função com Outra Função

Ao invés de substituir ou remover uma função, em algumas ocasiões você poderá desejar ampliá-la. Neste caso, você escreveria uma nova função com um nome diferente e a anexaria ao mesmo gancho.

Vamos imaginar que existe um gancho de ação para o rodapé do seu tema pai, chamado parent_footer. Qualquer função que você anexa a tal gancho rodará no local onde ele está situado.

No tema pai, já existe uma função chamada parent_footer_content() que povoa o rodapé. Mas e se você quisesse adicionar um pouco de código nele?

Aqui está como a função parent_footer_content() ficaria no tema pai:

function parent_footer_content() {
 // content of function here
}
add_action( ‘parent_footer’, ‘parent_footer_content’ );

Se você quisesse adicionar conteúdo na sequência, precisaria criar uma função em seu tema filho que fosse anexada ao mesmo gancho de ação, com uma prioridade que a faria rodar após a primeira função. Como a prioridade não está definida para a função do tema pai, sabemos que seu padrão é 10. Portanto, você precisa usar um número mais alto para que ela seja ativada após a versão original.

function child_footer_extra_content() {
 // contents of function here
}
add_action( ‘parent_footer’, ‘child_footer_extra_content’, 20 );

Isso faria com que o código da função do seu tema filho fosse adicionado após o código da função do tema pai.

Como Solucionar Problemas em Temas Filhos e Pais

Agora você sabe como criar um tema filho no WordPress e como usá-lo para substituir arquivos de template, adicionar estilos extras e novas funcionalidades ao seu site.

Mas e se seu tema filho não estiver funcionando como o esperado? E se o conteúdo não for exibido da maneira que você queria ou a função não estiver sendo ativada?

Use essa lista para solucionas problemas em seu tema filho:

  1. Verifique se ativou o tema filho e se não é o tema que está rodando. É incrivelmente fácil esquecer desta etapa!
  2. Atualize o cache do seu navegador e o cache criado por quaisquer plugins em seu site.
  3. Defina o wp-debug para verdadeiro (“true”) no arquivo wp-config.php do tema filho. Se estiver se deparando com uma tela em branco, deverá observar uma mensagem que dirá qual código causou o problema e em qual arquivo ele está localizado. Isso te ajudará a identificar o bug e em qual arquivo ele está sendo usado.
  4. Verifique o código de resultado de sua página, post ou arquivo. Encontre os elementos e veja a qual classe pertencem. Isso permitirá que você saiba com qual tipo de conteúdo está lidando e te ajudará a identificar qual arquivo de template está sendo usado. Em algumas ocasiões, não será o que você espera. Por exemplo, a página principal do blog nunca usa o archive.php, mesmo que esteja exibindo um arquivo dos seus posts.
  5. Verifique se nomeou seus arquivos corretamente. Consulte a hierarquia do template para se certificar de que usou a sintaxe certa.
  6. Se você duplicou um arquivo em um tema pai e o adicionou ao seu tema filho, verifique se salvou suas alterações.
  7. Se uma função para substituir uma função conectável não está funcionando, verifique se você atribuiu o mesmo nome a ela e que a função no tema pai é realmente conectável.
  8. Se uma função que você removeu continua sendo ativada, verifique se adicionou a prioridade correta e que sua escrita é idêntica à da função e do gancho no tema pai.
  9. Se você usou prioridades para substituir ou ampliar uma função, tente aumentar o valor da prioridade, para ter certeza absoluta de que ela será a última a ser ativada. Verifique se não há outras funções vinculadas àquele gancho que estejam interferindo com seu código.

Espero que uma ou mais etapas ajudem você a identificar o problema e a corrigi-lo em seu tema filho. Lembre-se: não edite o tema pai diretamente.

Dicas Úteis Para Trabalhar com Tema Filho no WordPress

Ufa! Tema filho é um tópico extenso e são recursos incrivelmente valiosos do WordPress. Eu os utilizei em todos os sites que desenvolvi até hoje.

Para ajudá-lo a encontrar os métodos que precisa para se aproveitar ao máximo do tema filho, aqui estão minhas dicas:

  • Se você precisa editar um tema terceirizado, sempre use um tema filho em seu lugar. Dessa forma, suas alterações não são perdidas quando você atualiza o tema.
  • Todo tema filho precisa de uma folha de estilos e um arquivo de funções.
  • O WordPress usará a hierarquia do template para determinar qual arquivo de template deverá ser usado ao exibir o conteúdo. Se ele encontrar dois arquivos com o mesmo nome, usará aquele que estiver no tema filho.
  • Você pode substituir uma função conectável em seu tema pai, escrevendo uma função com o mesmo nome em seu tema filho.
  • Você pode desvincular a função de um tema pai usando remove_action() ou remove_filter() em seu tema filho e escrevendo uma nova função.
  • Você pode expandir uma função em seu tema pai, escrevendo uma função em seu tema filho e vinculando-a ao mesmo gancho de ação ou de filtro.
  • Não se esqueça de ativar seu tema filho após fazer seu upload. E certifique-se de que ninguém remova o tema pai da sua instalação do WordPress. Sem ele, o tema filho não funcionará.

Resumo

Um tema filho é um recurso útil do WordPress, que permite que você personalize um tema sem editar seu código diretamente. Você pode usá-lo para adicionar uma funcionalidade a um tema, personalizar seu estilo ou criar/editar arquivos de template.

Se você seguir as orientações acima, será capaz de criar tema filho no WordPress de acordo com as melhores práticas e se beneficiar com eles em diversas tarefas. Tudo isso sem perder suas alterações e personalizações cada vez que atualiza o tema pai.


Se você gostou deste artigo, então você vai adorar a plataforma de hospedagem WordPress da Kinsta. Turbine seu site e obtenha suporte 24/7 de nossa experiente equipe de WordPress. Nossa infraestrutura baseada no Google Cloud se concentra em escalabilidade automática, desempenho e segurança. Deixe-nos mostrar-lhe a diferença Kinsta! Confira nossos planos