WordPress

WordPress – Criando e customizando Temas Filhos (Child Themes)

Rate this post

O WordPress é um CMS que fornece infinitas possibilidades de customização, principalmente se você possui conhecimentos em HTML, CSS e PHP. Após instalar um tema, algumas pessoas começam a alterar uma série de coisas no blog ou site, como estilos, funções, disposição de itens, mas cuidado, você pode estar fazendo isto da forma ERRADA!

Errado? Mas por quê?

Um dos principais motivos pelo qual não é recomendado alterar diretamente os arquivos do tema, envolve a questão do update. Caso seu tema receba alguma atualização, esta atualização pode sobrescrever os arquivos do tema, fazendo com que você perca suas alterações.

Ah… mas se eu não atualizar então fica tudo certo, não é mesmo?

Não exatamente. Manter o seu tema atualizado é de vital importância para a segurança de seu site e update dos novos recursos criados pelo WordPress. Sendo assim, mantenha seu tema atualizado!

Editando temas com Child Themes

A melhor forma de se fazer alterações em um tema no WordPress sem editar diretamente seus arquivos é a utilização de Child Themes, que em uma tradução livre significa Temas Filhos. Antes de falar a respeito de Child Themes, temos que falar dos Parent Themes (Temas Pais).

Parent Themes (Temas Pais)

Quando dois temas se amam muito, eles… Brincadeiras a parte, um tema se torna um tema pai quando é criado um tema filho para ele. Caso contrário, ele é apenas um tema normal. Qualquer tema que possua todos os arquivos obrigatórios para seu funcionamento pode se tornar um Tema Pai.

Child Themes (Temas Filhos)

O WordPress entende o tema filho como um tema normal, o qual é exibido normalmente junto com os outros temas na sua dashboard do WordPress e precisa ser ativado.

Para criar um tema filho, você precisa criar um diretório para ele em wp-content/themes, mas isso não é exatamente uma regra, contudo recomenda-se a utilização do sufixo -child para indicar que o tema é um filho.

Exemplo: twentyfifteen-child

Crie dentro do diretório recém-criado os arquivos style.css e functions.php. No arquivo style.css, você precisa adicionar um cabeçalho com as informações do tema, similar ao que o tema pai possui:

/*
 Theme Name:   Twenty Fifteen Child
 Theme URI:    http://example.com/twenty-fifteen-child/
 Description:  Twenty Fifteen Child Theme
 Author:       John Doe
 Author URI:   http://example.com
 Template:     twentyfifteen
 Version:      1.0.0
 License:      GNU General Public License v2 or later
 License URI:  http://www.gnu.org/licenses/gpl-2.0.html
 Tags:         light, dark, two-columns, right-sidebar, responsive-layout, accessibility-ready
 Text Domain:  twenty-fifteen-child
*/

Notaram algo diferente além da adição da palavra Child no nome e na descrição do tema?

Neste cabeçalho estou informando que o template é twentyfifteen, ou seja, estou dizendo que este tema é um tema filho do tema que está no diretório twentyfifteen. É esta linha que informa ao WordPress que nosso tema é um tema filho.

A partir daí, todos os arquivos que não forem encontrados no diretório do nosso tema filho, serão carregados herdados do tema pai.

Caramba! Ficou tudo zoado aqui!

Calma aí! Ainda falta uma coisa importante: Como nós criamos um arquivo style.css no nosso tema filho, ele passa a ignorar o style.css do tema pai. Sendo assim, o CSS do seu tema não carrega.

Você precisa adicionar esta função ao arquivo functions.php do seu tema filho. Ela adiciona o style.css do tema pai ao seu tema filho.

<?php
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );

}

Mãos à obra!

No caso do style.css, os estilos do tema filho tem prioridade sobre os estilos do tema pai. Sendo assim, se você adicionar um código que entre em conflito com um estilo aplicado no tema pai, o que será aplicado é o do tema filho.

Agora você pode alterar seu tema livremente. Suas alterações não ficam restritas a apenas aos estilos. Você pode editar qualquer arquivo do tema, basta você fazer uma cópia do arquivo do tema pai e replicá-lo no diretório do tema filho.

Assim, você pode alterar qualquer arquivo do tema. Caso queira retornar para a versão original deste arquivo, basta removê-lo do diretório do seu tema filho. Bem melhor, não?

Mas e o functions.php? Porque o estilo não carregou e as funções carregaram normalmente?

O arquivo functions.php do seu tema filho é carregado juntamente com o functions.php do tema pai, porém, diferentemente do que ocorre com os estilos, o functions.php do tema pai é carregado primeiro.

Um erro comum é replicar o código do functions.php do tema pai no arquivo de mesmo nome no tema filho. Não faça isso, “vai dar muito ruim”, pois as funções que foram copiadas já estão sendo executadas.

Então é isso 🙂

Neste artigo optei por abordar a criação de um child theme sem ter que me aprofundar na criação e customização de temas.

Gostou do artigo? Tem alguma dúvida? Fez algo bem legal?

Quer uma série de artigos sobre como criar um tema para WordPress do zero?

Não deixe de comentar! 🙂

Bons estudos!

Felipe Pinheiro

22 anos. Estudante de Sistemas de Informação. Desenvolvedor web no MX Cursos desde 2014.

Ver comentários

  • Topp hein...gostaria tbm de saber como editar um chield Theme já pronto

    • Olá Matheus, fico feliz que tenha gostado do artigo.
      Então, não há mistério na edição de Child Themes. Você pode editá-lo como um tema qualquer, pois ele está sujeito a todas as regras da estrutura de temas do WordPress.

  • alguém sabe como embutir plugins em um template wordpress a ser instalado?

    • Oi Gianni, tudo bem? Geralmente esses plugins oferecem duas formas de inserir os sliders no tema. Uma é através do shortcode, mas os shortcodes funcionam apenas em páginas. Dessa forma, você poderá usar o do_shortcode (https://goo.gl/XSLqkM) para transformar esse shortcode em linha de código e inserí-la dentro do arquivo do tema. Se o slider tiver que ficar apenas na home do site, use a função is_front_page (https://goo.gl/ysSOtJ) para isso :)

      • excelente tarde amigo,

        acho que não me entendeu completamente. eu gostaria de embutir o plugin no meu template. por exemplo, estou criando um template chamado Nocbit. Quando você instalar ele no seu wordpress, eu quero que automaticamente já apareça os plugins que eu comprei para você. assim você poderá fazer uso de dois plugins pagos, sem custo, que são visual composer e slide revolution. eu comprei as respectivas licenças extendidas para essa aplicação. mas eu não sei como fazer para embutir elas no meu template.

        para você poder entender melhor, na envato praticamente todos os templates vendidos vem com plugins embutidos. isso deve ser muito simples, mas eu ainda não sei como fazer.

        • Gianni, a maioria deles utilizam o TGM Plugin Activation para finalizar

  • Oi, Felipe, tudo joia? Seu artigo foi um dos mais fáceis de entender que encontrei, obrigada por compartilhar. Mas como eu sou iniciante no mundo WP, mesmo assim não consegui finalizar o Child Theme. Talvez eu esteja fazendo da maneira errada.. então eu vim te perguntar algumas coisas que nenhum blog que eu li informa (talvez porque são muito básicas):
    1- Eu devo fazer as edições do child theme nos arquivos originais , e depois carregar pro servidor? (eu fiz assim: entrei no arquivo wordpress original > wp-content > public_html > wp-content >themes, e aí inseri a pasta com theme-child
    2 - Depois de criar o style.css, eu crio o functions.php somente com essa linha de código que você mencionou no artigo?
    Nesse processo, eu fiz alguma coisa errada? Agradeço a ajuda :)

  • Felipe, muito bom o seu post. Mas eu tenho uma pergunta importante. Meu site já está montado com um tema. Hoje quero controlar todas as customizações através do CHILD-THEME. Como fazer isso já que o site está montado e funcionando pelo tema PAI?

  • Artigo Legal!
    Agora preciso de uma ajuda valiosa que acredito ser a mesma que do amigo aqui dos comentarios.

    Preciso que esse Style do Child theme seja "utilizado" por todos plugins. Como faço para que os plugins que trabalham juntos ao tema original também siga o css do Child Theme?

  • Editei o tema pai e depois criei o filho. Nesse caso se o tema pai for atualizado perco tudo. Preciso fazer as alterações no tema filho novamente?
    Valeu pelo tutorial ficou muito bom.

  • Oii, Felipe! Sou muito iniciante, me explica, em que programa eu crio esse arquivo style.css?

Posts recentes

O Futuro da Criação de Sites: Integração de IA e Design Gráfico

Nos últimos anos, testemunhamos uma revolução na forma como os sites são criados, impulsionada pelo…

1 mês atrás

Como a IA Está Revolucionando a Animação 3D

A animação 3D tem sido uma forma poderosa de contar histórias e criar experiências visuais…

1 mês atrás

Lista das 20 Melhores Inteligências Artificiais em 2024 para Criação de Imagens (Todas Gratuitas)

Nos últimos anos, a inteligência artificial (IA) tem revolucionado a forma como criamos e editamos…

1 mês atrás

O Papel da Inteligência Artificial na Criação de Sites com WordPress

Nos últimos anos, a integração da inteligência artificial (IA) na criação de sites tem revolucionado…

1 mês atrás

5 Tendências em Edição de Vídeo Impulsionadas pela Inteligência Artificial

Nos últimos anos, a edição de vídeo evoluiu rapidamente com o avanço da tecnologia, e…

1 mês atrás

O Papel Revolucionário da Inteligência Artificial na Dublagem de Filmes

A dublagem de filmes desempenha um papel fundamental na indústria cinematográfica, permitindo que obras de…

2 meses atrás

This website uses cookies.