Modelos de Temas: Category.php
Como o nome já nos diz, o arquivo category.php
é um modelo de template do próprio WordPress, que é usado no seu tema para carregar e exibir as postagens de uma categoria específica em seu site.
Quando você esta editando uma postagem no painel administrativo do WordPress, você consegue atrelar categorias a cada um dos seus posts, clicando no botão Adicionar nova categoria:
Um formulário vai se abrir, possibilitando que você informe o nome da categoria e uma categoria ascendente:
Basta clicar no botão [Adicionar nova Categoria] para que ela seja inserida no banco de dados do WordPress.
No meu caso, eu criei uma nova categoria chamada de "Micins" sem categoria ascendente.
Caso desejar, você pode criar e gerenciar suas categorias diretamente no menu de categorias, basta ir em: Posts > Categorias.
Feito isso, vamos seguir com a criação deste arquivo 😉
Criando o arquivo category.php
Dentro da pasta raíz do seu tema, você vai precisar criar um arquivo chamado de category.php
:
<?php
/**
* O template para exibir páginas de arquivo.
*
* @link https://codex.wordpress.org/Template_Hierarchy
*
* @package WPMicilini
* @since 1.0
*/
get_header();
?>
<!-- Insira aqui os códigos para mostrar as categorias -->
<?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 categorias -->
, é onde faremos a mágica acontecer, inserindo um punhado de código, como estes que estamos vendo abaixo:
<div class="category-div">
<?php
if (have_posts()) :
?>
<h1><?php single_cat_title(); ?></h1>
<?php
while (have_posts()) : the_post();
?>
<article <?php post_class(); ?>>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<div class="dados-info">
Publicado em <?php the_time('F j, Y'); ?> por <?php the_author(); ?>
</div>
<div class="dados-conteudo">
<?php the_excerpt(); ?>
</div>
</article>
<?php endwhile; ?>
<?php the_posts_pagination(); ?>
<?php else : ?>
<p>Não há postagens nesta categoria.</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 mostrada que estão relacionadas com a categoria específica, caso negativo, a execução do código pula para o else
, que por sua vez, mostra a mensagem: Não há postagens nesta categoria.
Em seguida fazemos o uso de algumas tags condicionais em conjunto com algumas funções do WordPress, são elas:
single_cat_title()
: Função usada para exibir o título da tag, em páginas que mostram postagens de uma tag específica.
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_permalink()
: Fornece o link para a postagem individual. O usuário pode cair direto no single.php
ou no singular.php
.
the_title()
: Função que retorna o título daquela postagem, ela pode receber parâmetros adicionais.
the_time('F j, Y')
: Mostram a data de publicação no formato informado.
the_author()
: Mostram o nome do autor da publicação.
the_excerpt()
: Exibe um resumo da postagem.
the_posts_pagination()
: 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.
As explicações do loop
já foram debatidas em lições anteriores, caso ainda tenha alguma dúvida basta acessar este link.
Variações do category.php
O arquivo category.php
também conta com variações que visam atender tipos específicos de categorias de conteúdo, vejamos cada uma delas a seguir:
category-{id}.php
: Você pode também criar arquivos específicos com base no ID da categoria. Por exemplo, category-5.php
seria específico para a categoria com o ID 5.
category-{slug}.php
: Você também pode criar arquivos informando a URL da categoria. Por exemplo: category-micins.php
seria específico para a categoria que criamos no início desta lição chamada de Micins.
category-{term_id}.php
: Este formato permite criar modelos específicos com base no term id da categoria. Por exemplo, category-5.php
seria específico para a categoria com o term_id 5.
É importante ressaltar que ao usar as variações ditas acima, o WordPress irá automaticamente reconhecer esses modelos específicos ao exibir postagens em categorias correspondentes.
Caso não exista tais arquivos, o wordpress seguirá a hierarquia de modo a abrir o arquivo mais genérico que é o category.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 category.php
e suas variações.
Até a próxima 😁