Modelos de Temas: Singular.php

Modelo de Tema: Singular.php

O WordPress conta com um modelo de template que pode ser usado para representar o conteúdo de uma única postagem, página ou um tipo de conteúdo personalizado.

Ele é chamado de singular.php, e pode ser criado na raíz do seu tema para tal fim.

Quando um usuário acessar a página de uma de suas postagens, será este arquivo que vai ser chamado para carregar a página.

Criando o Singular.php

Dentro da pasta raiz do seu tema, crie um novo arquivo chamado singular.php:

<?php get_header(); ?>

<!-- Insira aqui o HTML da sua Página única -->

<?php get_footer(); ?>

Se você acompanhou a nossa jornada de criação de temas para WordPress desde o início, não terá duvidas dos códigos que foram inserido acima (get_header() | get_footer()).

Por fim, basta que você estilize o arquivo da maneira como desejar, usando o loop ou qualquer outra funcionalidade do WordPress 😉

Qual a diferença entre o singular.php e o page.php?

Logo no início desse conteúdo, foi dito que o singular.php é usado para carregar:

  • Uma Postagem,
  • Uma página,
  • Outro conteúdo personalizado.

Talvez você esteja pensando que o singular.php é usado para exibir postagens, e o page.php é usado para exibir páginas.

Então nesse caso, se ambos existirem em um mesmo tema, o WordPress vai se encarregar de abrir o singular.php quando este conteúdo for um post, e o page.php quando o conteúdo for uma página?

Exatamente, e apesar dessa lógica aí em cima funcionar, o singular.php está mais para um fallback do page.php.

Lembra que em lições anteriores o index.php funciona como um fallback de outros modelos?

Então, o index.php é um fallback de todos os modelos de páginas, enquanto o singular.php é um fallback que antecede page.php caso este não existir.

Isso significa dizer, que no nível hierárquico do WordPress, enquanto o page.php existir, o singular.php nunca será encarregado de abrir uma página, só um post.

É importante você entender que ambos podem ser usados para exibir conteúdo individual, como páginas ou postagens.

O page.php é exclusivo para páginas, ele é sempre chamado quando alguém acessa uma de suas páginas.

Se o WordPress não encontrar um arquivo mais específico, como page-{slug}.php, page-{id}.php, ele recorrerá ao page.php.

Já o singular.php, é um genérico usado para conteúdos individuais, onde pode ser usado para exibir qualquer tipo de conteúdo individual, incluindo postagens e páginas.

Se o WordPress não encontrar um arquivo mais específico, como single-{post-type}.php, single.php, ou page.php, ele recorrerá ao singular.php.

Como fazer com que um post seja aberto no singular.php, e uma página seja aberta no page.php?

É importante ressaltar que na existência de ambos, o WordPress se encarregará de fazer isso automaticamente.

Mas, se preferir, você pode reforçar isso por meio dos comandos is_page()is_singular('post'), da seguinte forma:

1) Certifique-se de que você tem ambos os arquivos (page.php e singular.php) dentro da pasta do seu tema.

2) Em seguida dentro do loop do page.php, você pode verificar se a página que está sendo aberta é uma página concreta:

<?php
// Início do loop WordPress
while (have_posts()) : the_post();

 if(is_page()){
 echo 'Este é um conteúdo de uma PÁGINA que está sendo carregado pelo PAGE.PHP';
 }

endwhile;
?>

3) Já dentro do loop do singular.php, você pode verificar se é um post:

<?php
// Início do loop WordPress
while (have_posts()) : the_post();

 if(is_singular('post')){
 echo 'Este é um conteúdo de um POST que está sendo carregado pelo SINGULAR.PHP';
 }

endwhile;
?>

Com isso, se você tentar acessar quaisquer uma de suas páginas, você será direcionado ao page.php, e quando tentar acessar um dos seus posts, será direcionado ao singular.php 😄

Conclusão

Nesta lição você aprendeu um pouco mais sobre o arquivo singular.php e como ele pode coexistir com o page.php.

Até a próxima lição.