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 😁

