Trabalhando com Template Parts

Trabalhando com Template Parts

Já pensou na possibilidade de dividir algumas partes do seu código em pequenos pedaços, de modo a reutiliza-los em vários outros modelos de temas?

Imagina que você tem uma seção dentro do single.php que é responsável por carregar os 3 últimos posts, e que essa mesma seção se repete em outros modelos, como: page.php, home.php e archive.php.

Até então, você tem a mesma seção replicada nesses 4 modelos de temas, ou seja, você encontraria o mesmo código HTML, com as mesmas funções do WordPress, além das mesmas tags condicionais, repetidas dentro desses 4 arquivos.

E se fosse possível, criar um único arquivo chamado de minha-secao.php, a fim de armazenar o código que carrega os 3 últimos posts, para que posteriormente, você pudesse incluir este arquivo nos outros modelos: single.php, page.php, home.php, archive.php?

Desse modo, teríamos um arquivo padronizado e que pudesse ser reutilizado em outros arquivos 😁

O são Template Parts?

Template Parts é uma funcionalidade que foi introduzida na versão 4.7 do WordPress, onde possibilita que os desenvolvedores de temas, possam dividir a lógica de funcionamento em partes menores, de modo que essas partes sejam reutilizadas por outros modelos de temas.

Isso ajuda na organização e manutenção mais eficiente do código do tema, pois em casos assim, você só precisa modificar um único arquivo, surtindo efeito em todos os outros modelos de temas em que este arquivo está inserido.

As Template Parts são bem parecidas com os comandos require e o include do PHP, a diferença é que usamos a função  get_template_part() para fazer essa inclusão.

O uso das Template Parts não tem muito mistério, basicamente é mais uma questão de organização de arquivos do que qualquer outra coisa que já vimos nesta jornada.

Quando trabalhamos com template parts, seguimos três passos bem simples:

  • Criar uma pasta para armazenar os arquivos de template.
  • Criar cada arquivo de template de acordo com sua responsabilidade.
  • Importar o arquivo de template no modelo de tema desejado.

Veremos como fazer isso a seguir:

Passo 1) Criando a Pasta

Por questões de organização, e também considerada uma boa prática adotada pela maioria dos desenvolvedores de temas.

Quando nós trabalhamos com Template Parts, começamos criando uma nova pasta, dentro da pasta raiz do seu tema, no meu caso eu vou chama-la de template-parts.

Observação: Alguns desenvolvedores de temas optam por criar uma pasta com os seguintes nome: parts, template-includes, ou só templates. Sendo assim, quando for dar um nome a essa pasta, pense em um nome que seja fácil para você.

Passo 2) Criando o arquivo de modelo

O próximo passo, envolve criar um arquivo de modelo, que vai representar uma parte do código.

No meu caso, eu criei um novo arquivo chamado de posts-template.php, dentro da pasta template-parts:

O arquivo que acabei de criar, será responsável por armazenar o código que carrega as informações básicas de um artigo (Título + Conteúdo):

<article>
 <header>
 <h2><?php the_title(); ?></h2>
 </header>
 <div class="content">
 <?php the_content(); ?>
 </div>
</article>

Passo 3) Importando o modelo

Por fim, basta importar o arquivo de template em um dos seus modelos de temas, usando o comando get_template_part():

<?php get_template_part('template-parts/posts', 'template'); ?>

Como podemos ver, essa função recebe dois parâmetros:

'template-parts/posts': Este é o primeiro parâmetro e representa o nome base do arquivo do template, sem a extensão .php.

'template': Este é o segundo parâmetro e é geralmente usado para adicionar um sufixo ao nome do arquivo.

E se o nome do meu arquivo fosse micilini-roll.php? Nesse caso, o resultado ficaria assim:

<?php get_template_part('template-parts/micilini', 'roll'); ?>

Perceba que o nome da pasta junto ao primeiro nome do arquivo antes do traço (-), são colocados no primeiro parâmetro, e tudo o que vem após o traço (-), entra como segundo parâmetro.

É importante ressaltar que o arquivo posts-template.php que criamos acima, contém comandos que devem ser adicionados dentro do loop do WordPress. 

Logo, tenha em mente que o comando get_template_part('template-parts/posts', 'template'); precisa ser inserido dentro das tags do loop, por exemplo:

<?php
while (have_posts()) : the_post();
?>

<?php get_template_part('template-parts/posts', 'template'); ?>

<?php
endwhile;
?>

Dúvidas sobre o Template Parts

E se o nosso arquivo não tivesse o traço (-), sendo chamado de posts.php?

Diante disso, o segundo parâmetro seria opcional:

<?php get_template_part('template-parts/posts'); ?>

E se o nosso arquivo de template não estivesse dentro da pasta template-parts?

Bom, neste caso, basta não informar o caminho da pasta no primeiro argumento

<?php get_template_part('posts'); ?>

Conclusão

Nesta lição, você aprendeu a fazer o uso de uma prática recomendada para os desenvolvedores de tema do WordPress; O uso de Template Tags.

Elas são super importantes para a organização e manutenção dos nossos códigos, sendo indispensável a sua utilização no dia a dia.

Até a próxima lição 🤓