Temas filhos: o que são e para que servem?

No Fórum, sempre há muitas perguntas sobre como alterar uma ou outra coisa num tema, a minha resposta é quase sempre a mesma: antes de tudo, use um tema filho!

Ao usar um tema filho, você mantém as características do tema principal, mas sem precisar editar muita coisa e sem o risco de perder tudo na próxima atualização. Veja como criar temas filhos na documentação Temas Filhos. Meio confuso, mas na prática funciona assim:

  • Você baixou/comprou um tema
  • Tudo está ótimo, mas você precisa modificar a cor e o tamanho do texto. O tema não tem painel de opções para se fazer isso.
  • O jeito errado de resolver isso: abre o arquivo style.css do tema e altera os estilos.
  • O jeito certo: cria um tema filho e neste tema, modifica o arquivo style.css

Os temas filhos criados ficam disponíveis em Aparência > Temas, como temas comuns, então você deve usá-los em vez de usar o tema principal.

Perguntas Frequentes

1. Por que usar um tema filho, se só quero modificar uma simples coisa, como cor de links?

Porque os temas são atualizados constantemente pelo seu autor. Se atualizar (e você deve fazer isso), as suas modificações serão perdidas.

2. Tenho que copiar tudo do tema pai?

Não. Apenas o que quer modificar. Se você quer modificar o cabeçalho, por exemplo, copie apenas header.php do tema pai para a pasta do tema filho e edite o que quiser por lá.

3. Posso criar um arquivo do zero para o tema filho?

Sim, mas você deve estudar a estrutura do tema pai. Alguns temas tem funções próprias, recursos extras, scripts etc. É melhor copiar o arquivo do tema pai e modificá-lo.

4. E quanto as funções no arquivo functions.php do tema pai? Tem algumas que não quero usar/estão causando problemas.

O tema filho pode ter um arquivo functions.php, mas neste arquivo em especial, os códigos se somam. É bom saber disso porque quando encontrar um código que quer usar e no site diz “adicione ao arquivo functions.php…” você deve fazer isso também através de um tema filho. Quando o tema atualizar, o seu arquivo vai ficar intacto. Se queremos desativar uma função do tema pai, como o arquivo do tema filho não o substitui, você deve adicionar ao arquivo do tema filho algumas ações e funções para desativar o que não quer.

Temas filhos: o que são e para que servem? é um artigo sobre temas, temas filhos temas, temas filhos Códigos WordPress http://dianakcury.com/wordpress-pt/codigos-pt/o-que-sao-temas-filhos#commentsDiana K. Cury http://dianakcury.com/wordpress/wp-content/themes/di3554/img/card.png

16 ideias sobre “Temas filhos: o que são e para que servem?

  1. Filipe Nogueira de Souza

    cara este post me ajudou muito… ampliou meus conhecimentos e tirou varias dúvidas q eu tinha parabens!!

    1. Metusalem

      Oi Daiana, tudo bem?
      Estou com um grande problema para editar um arquivo main.css que fica em uma subpa do tema pai. Caminho: Tema child/css/skins/main.css

      Se puder me ajudar ficarei muitíssimo grato.

      Obrigado.

  2. Jutai

    E no caso do css do tema pai estar em uma pasta diferente, é só mudar o mesmo style.css?

    Ex.: o css do meu tema esta na pasta : (“../tema-pai/styles/white/css/style.css”) eu mudaria apenas o (“../tema-pai/style.css”) e funcionaria?

    1. Diana Autor do post

      O importante é apontar para a folha de estilos principal. Há temas chatos que não deixam criar temas filhos também ou têm um modo especial de usar css personalizado, como uma área do painel do tema para adicionar códigos.

  3. Maria C Rodrigues

    Olá Diana.

    No meu tema pai (eVid) na folha de estilos principal (style.css) só tem as informações de cabeçalho do tema e na style-Black.css tem os estilos.

    Se importar dessa forma: @import url(“../eVid/style.css”) e criar o arquivo style.css ou assim: @import url(“../eVid/style-Black.css”) e criar um arquivo style-Black.css, nem um dos dois modifica o tema pai.

    Será que esse tema eVid é um desses temas chatos? Eu não entendo muito dessa área, mas já fiz um tema filho do tema Aggregate, e funciona perfeitamente.

    1. Diana Autor do post

      Oi!

      Os temas premium são chatos de criar tema filho, às vezes parece que criam coisas para que não seja possível criar. Nestes temas tem um painel para estilos extras, se for pouca coisa você pode deixar por lá ou direto no style.css mesmo se não for atualizar o tema. Dependendo do que se quer modificar, talvez não tenha a ver com CSS, por exemplo larguras em temas responsivos, alguns temas usam scripts mesmo.

  4. Sérgio

    Boa tarde Diana. Parabens pelo post.

    No meu caso alterei um arquivo .php e coloquei no tema filho (no caminho identico ao do pai), não é um arquivo de modelo dos que vem no WP (tipo, header, footer, single, etc) é um arquivo do proprio tema, mas as alterações não surtem efeito.

    Sabe me dizer o que fiz de errado ?

    1. Diana Autor do post

      Não pode ser idêntico, o tema filho tem uma pasta própria com no mínimo o style.css, que é onde fica a informação de qual tema herdar as funções e características.

    2. Sérgio

      Bom dia Diana, não soube me expressar, eu coloquei o arquivo no caminho idêntico ao do tema pai mas no tema filho. Criei a mesma estrutura de pastas nos dois temas, alterei o arquivo do tema pai e o coloquei no tema filho, com o tema filho ativo. Mas o arquivo pai que é executado

    3. Diana Autor do post

      Tenta trocar de tema e depois selecionar o tema filho. Às vezes acontece de “travar” no tema.

  5. Kleyton Renato

    Vejo muitos artigos e todos falando a mesma coisa. Mas, há um grande problema e não se eu é que estou complicando.

    Sempre falam sobre o “style.css”. Mas, e se o tema dispor de vários CSS’s …?
    Estou com um tema que, além de ter na pasta raiz do tema um style.css, tem uma pasta css/colour.css … Editando o style.css na pasta, consegui muita coisa. Mas, nesse colour.css não consigo nada. Já tentei de várias maneiras. Criando uma pasta igual – CSS/ – e um arquivo igual (css/colour.css) e nada.
    Alguém já enfrentou esse problema?

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *