Sabe o que é um child theme? Pode poupar muitas horas do seu tempo

Um dia decidi mudar boa parte do site que me tinha levado longas horas a montar. Talvez umas 20 ou 21, talvez um pouco mais. Confesso que o estupor em que fiquei depois destas três etapas me impediu, e ainda impede, de recordar certos detalhes com à vontade.

Foi há uns seis anos atrás. Tinha instalado um tema, fiz as necessárias alterações, coloquei tudo nos seus devidos lugares, o logótipo, os ícones para as redes sociais, os ícones para a partilha nas redes sociais, já importantes naquele tempo, os textos e as fotos que queria. Estava o site que era capaz de fazer naquela altura e, modéstia à parte, não estava nada mal. A página de contacto, por exemplo, estava linda e com todos os elementos que devia ter.

Nesse dia, umas semanas depois de tudo isto feito, resolvi fazer algumas mudanças. Parecia-me necessário ir um pouco mais longe e personalizar o site. Estava confiante. Tinha acrescentado mais uns quantos conhecimentos de WordPress e sentia-me capaz de os aplicar. Assim pensado, melhor executado. Tudo ficou ainda melhor.

Não tinha passado mais de uma semana e o tema que usava registou uma alteração. Não houve sequer um momento de hesitação. Fui direto ao botão de actualizar e pumba…

Uns segundos depois o site estava, para meu horror, atualizado. Bom, por um lado. Afinal devemos ter sempre o WordPress, os plugins e temas actualizados. Muito mau pelo resto. Todo o trabalho que tinha feito, as 20 horas mais umas quantas depois, tinham sido desperdiçadas por uma simples atualização.

Foi assim, com um impacto digno do Titanic contra o iceberg, que me deparei com uma das mais importantes certezas de quem instala e usa temas: usar sempre um child theme.

Um pequeno parêntesis para registar que há quem lhe chame “tema filho”. Nós preferimos o termo em inglês. Mas é importante saber que são a mesma coisa.

O child theme é…

É usado para permitir a personalização do parent sem lhe mexer, evitando que uma atualização destrua todas as alterações entretanto feitas e obrigue a realizar, de novo, as mudanças desejadas. Pode ser um processo demorado e é sempre delicado.

É usado para personalizar os sites até onde for possível aproveitando a estrutura de um tema e, desta forma, evitar ter de fazer tudo de raiz.

É um tema que herda e sobrepõe os estilos e as páginas modelo do tema parent (pai), fazendo uso da hierarquia de modelos (templates) do WordPress.

Quando um elemento central de um site, como uma página ou artigo, precisa de ser mostrado ao utilizador, o WordPress procura o modelo adequado. O primeiro local é o child theme, se existir e estiver activado. Só depois, se não o encontrar, é que segue para o parent. Logo, as funções, os estilos e os modelos de página do child sobrepõem-se ao parent.

E como se faz?

Vejamos o actual tema base do WordPress, o Tweenty Sixteen. É um parent e não precisa de nenhum outro para funcionar. Mas se lhe pretender fazer qualquer tipo de alteração, por mais pequena que seja, deve criar um child.

O parent tem de continuar instalado para que tudo funcione em condições. Porque o child pode sobrepor um conjunto de elementos mas tudo o resto continua dependente do parent.

Para criar um child theme é necessário criar uma pasta específica no directório wp-content/themes do WordPress, ao lado da pasta do tema pai. É ainda desejável que os seus nomes sejam idênticos, apenas com um “-child” no final do mais novo.

Nessa pasta são obrigatórios dois ficheiros: style.css e functions.php. O primeiro é o que irá acolher as alterações nos estilos que venham a ser implementadas. O segundo é a casa das funcionalidades a inserir ou a alterar. É no functions que será colocado o código necessário para ligar os ficheiros style.css do child e do parent. Uma espécie de transmissão de DNA.

Em tempos, o método aconselhado passava por fazer o @import dos estilos mas esta forma, embora ainda funcione, não é a recomendada.

A solução passa por umas pequenas linhas de código, com a acção wp_enqueue_scripts e usar wp_enqueue_style().

Assim:

add_action( ‘wp_enqueue_scripts’, ‘theme_enqueue_styles’ ); function theme_enqueue_styles() { wp_enqueue_style( ‘parent-style’, get_template_directory_uri() . ‘/style.css’ ); }

Muitos dos melhores temas premium para WordPress e mesmo alguns dos gratuitos disponíveis no repositório do wordpress.org incluem já os elementos necessários para facilitar a criação de child-themes, ajudando a tarefa de quem não se sinta muito confortável com estas operações.

Há ainda a opção de usar um plugin como o Child Theme Wizard. É muito fácil de usar. Basta instalar, usar o “wizard”, escolhendo o tema parent, algumas das opções de personalização e criar em “Criar Child Theme”. Depois o novo tema estará disponível no painel do WordPress, em Apresentação > Temas.

E se quiser alterar ficheiros do tema?

É para isso mesmo que serve o child theme, para ajudar nesse processo sem perder aquilo que o parent traz. Vamos supor que pretende alterar alguns aspectos do conteúdo da página onde são apresentados os artigos.

Por norma, esta página usa o modelo (template) single.php ou aparentado. Alguns temas mais complexos podem usar outras terminologias mas acabam por estar em redor deste nome. Para proceder às mudanças copie (copie e não mova) o ficheiro single.php do parent para a pasta do child. Faça as alterações que deseja. A partir desse momento, o que o seu site vai apresentar é a formatação definida no single.php que se encontra no child.

Quando houver uma atualização do tema…

Atualize o tema parent sem problemas porque não vai perder nenhuma das suas personalizações. É para isso que lá está o child.

Recomendamos, no entanto, que antes de qualquer atualização de tema ou do WordPress faça cópias de segurança dos ficheiros e base de dados do seu site. É algo que deve ainda fazer com regularidade.

 

Texto de José Freitas publicado originalmente no blog da VIRGU


Registo de domínios e alojamento web: Virgu Pages – Alojamos grandes ideias