Modelos de Temas: Date.php

Modelos de Temas: Date.php

Este modelo de temas é conhecido como date.php, e como o nome já nos diz, é um modelo de template do próprio WordPress, que é usado no seu tema para carregar e exibir as postagens relacionadas a datas específicas. 

Como você já sabe, cada postagem que você publica na plataforma do WordPress é acompanhada por uma data e hora.

E nós como meros desenvolvedores de temas da plataforma, podemos criar modelos de template que carregam postagens relacionadas a essas datas e horas.

É importante ressaltar que este arquivo conta com variações como: day.php (para dias), month.php (para meses) e year.php (para anos).

Pronto para seguir com a criação deste arquivo?

Criando o date.php

Dentro da pasta raiz do seu tema, você precisa criar um arquivo chamado date.php:

<?php
/**
 * O template para exibir páginas de datas
 *
 * @link https://codex.wordpress.org/Template_Hierarchy
 *
 * @package WPMicilini
 * @since 1.0
 */

get_header(); 

?>

<!-- Insira aqui os códigos para mostrar as postagens relacionadas as datas -->

<?php
get_footer();
?>

Como podemos ver, o conteúdo inicial sempre começa com a abertura das tags PHP, onde inserimos algumas informações relevantes sobre o arquivo em formato de comentários, e é claro, importamos o cabeçalho e o rodapé por meio das funções get_header() e get_footer().

No local onde está escrito <!-- Insira aqui os códigos para mostrar as postagens relacionadas as datas -->, é onde faremos a mágica acontecer, inserindo um punhado de código, como estes que estamos vendo abaixo:

<div class="data-div">

<?php if ( have_posts() ) : ?>

 <!-- Início Título das Datas --> 
 <header class="page-header">
 <h1 class="page-title">
 <?php
 if( is_day() ) :
 echo "Dia: ".get_the_date();
 elseif ( is_month() ) :
 echo "Mês: ".get_the_date(_x( 'F Y', 'wpmicilini'));
 elseif ( is_year() ) :
 echo "Ano: ".get_the_date(_x( 'Y', 'wpmicilini'));
 else :
 echo 'Datas';
 endif;
 ?>
 </h1>
 </header>
 <!-- Fim Título das Datas --> 

 <!-- Início Conteúdos das Datas --> 
 <?php while ( have_posts() ) : the_post(); ?>
 <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
 <header class="dados-cabecalho">
 <?php the_title( '<h2 class="dados-titulo">', '</h2>' ); ?>
 </header>

 <div class="dados-conteudo">
 <?php the_content(); ?>
 </div>

 <footer class="dados-rodape">
 <?php if ( 'post' === get_post_type() ) : ?>
 <div class="dados-info">
 <?php echo 'Publicado em: ' . get_the_date() . ' por ' . get_the_author(); ?>
 </div>
 <?php endif; ?>
 </footer>
 </article>
 
 <?php endwhile; ?>
 <!-- Fim Conteúdos das Datas --> 

 <!-- Início Navegação de Conteúdos --> 
 <?php the_posts_navigation(); ?>
 <!-- Início Navegação de Conteúdos --> 

<?php else : ?>
<p>Datas não encontradas.</p>
<?php endif;?>

</div>

No comando acima, começamos definindo uma div que vai encapsular todo o conteúdo que será mostrado dali em diante.

Começamos fazendo a validação com a função have_posts(), para checar se existem postagens a serem mostradas relacionadas a aquela data, caso negativo, a execução do código pula para o else, que por sua vez, mostra a mensagem: Datas não encontradas.

No bloco [Título das Datas], criamos um <header> que ficará responsável por armazenar as informações da página que será mostrada.

Note que o date.php estará abrindo os conteúdos de todas das datas possíveis, e isso inclui dias, meses e anos.

is_day(): Verifica se a página atual se trata de um dia.

is_month(): Verifica se a página atual se trata de um mês.

is_year(): Verifica se a página atual se trata de um ano.

No bloco [Conteúdos das Datas], estamos carregando o conteúdo específico da página que foi aberta, onde o WordPress já sabe que tipo de conteúdo será carregado dentro do loop.

Se a página atual for somente um ano, o loop carrega as informações relacionadas a aquele ano.

Se a página atual for um ano e um mês, o loop carrega informações relacionadas a aquele ano e mês, e assim por diante.

Alguns códigos ali presentes já foram debatidos em lições anteriores, sendo assim, focarei naqueles que ainda não conhecemos.

the_ID(): Retorna o ID daquela post.

post_class(): Retorna o formato de conteúdo daquela postagem, aqui ele vai adicionar automaticamente classes como "post", "type-post" (para postagens padrão), "category-nome-da-categoria" (para a categoria da postagem), "tag-nome-da-tag" (para cada tag da postagem) e outras classes relevantes.

É utilizada para adicionar classes CSS a um elemento que exibe uma postagem no loop de postagens, permitindo a flexibilização e estilização da tag HTML.

the_title( '<h2 class="dados-titulo">', '</h2>' ): Função que retorna o título daquela postagem, onde neste exemplo, estamos encapsulando o título em si dentro da tag <h2>.

As explicações do loop já foram debatidas em lições anteriores, caso ainda tenha alguma dúvida basta acessar este link.    

Por fim, no bloco [Navegação de Conteúdos], estamos fazendo o uso do comando the_posts_navigation(), que é usada para exibir a navegação entre as páginas de postagens, quando há mais de uma página de resultados em um conjunto de postagens.

Veja como ficou o resultado final do arquivo date.php:

<?php
/**
 * O template para exibir páginas de datas
 *
 * @link https://codex.wordpress.org/Template_Hierarchy
 *
 * @package WPMicilini
 * @since 1.0
 */

get_header(); 

?>

<div class="data-div">

<?php if ( have_posts() ) : ?>

 <!-- Início Título das Datas --> 
 <header class="page-header">
 <h1 class="page-title">
 <?php
 if( is_day() ) :
 echo "Dia: ".get_the_date();
 elseif ( is_month() ) :
 echo "Mês: ".get_the_date(_x( 'F Y', 'wpmicilini'));
 elseif ( is_year() ) :
 echo "Ano: ".get_the_date(_x( 'Y', 'wpmicilini'));
 else :
 echo 'Datas';
 endif;
 ?>
 </h1>
 </header>
 <!-- Fim Título das Datas --> 

 <!-- Início Conteúdos do Archive --> 
 <?php while ( have_posts() ) : the_post(); ?>
 <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
 <header class="dados-cabecalho">
 <?php the_title( '<h2 class="dados-titulo">', '</h2>' ); ?>
 </header>

 <div class="dados-conteudo">
 <?php the_content(); ?>
 </div>

 <footer class="dados-rodape">
 <?php if ( 'post' === get_post_type() ) : ?>
 <div class="dados-info">
 <?php echo 'Publicado em: ' . get_the_date() . ' por ' . get_the_author(); ?>
 </div>
 <?php endif; ?>
 </footer>
 </article>
 
 <?php endwhile; ?>
 <!-- Fim Conteúdos do Archive --> 

 <!-- Início Navegação de Conteúdos --> 
 <?php the_posts_navigation(); ?>
 <!-- Início Navegação de Conteúdos --> 

<?php else : ?>
<p>Datas não encontradas.</p>
<?php endif;?>

</div>

<?php
get_footer();
?>

Como abrir a página de date.php no seu tema?

O processo é bem simples, basta digitar na URL o formato /ano/mes/dia, exemplo:

  • /2023/
  • /2023/11/
  • /2023/11/21

Variações do date.php

Como vimos no início deste conteúdo, o date.php conta com algumas variações:

day.php: Template usado para carregar o layout de todos os dias.

month.php:Template usado para carregar o layout de todos os meses.

year.php: Template usado para carregar o layout de todos os anos.

É importante ressaltar que ao usar as variações ditas acima, o WordPress automaticamente vai reconhecer esses modelos específicos ao exibir postagens em datas correspondentes.

Caso não exista tais arquivos, o wordpress seguirá a hierarquia de modo a abrir o arquivo mais genérico que é o date.php.

E caso ele não exista, o wordpress vai procurar pelos arquivos archive.php até chegar no index.php.

Conclusão

Nesta lição você aprendeu sobre o modelo de tema date.php e suas variações.

Até a próxima 😁