Singular.php é o novo integrante da hierarquia de arquivos a partir da versão 4.3 do WordPress. Visando simplificar a estrutura de um tema, a template poderá fazer uma função que hoje é destinada a dois arquivos distintos.
Parem e pensem. Quantos temas vocês já fizeram em que a interna de um post era semelhante, quiçá idêntica, à template padrão de uma página? Esse cenário é realmente bastante comum, e até o momento, a única forma de atendê-lo era criando dois arquivos diferentes no nosso tema, page.php e single.php. Ou repetíamos o código (Argh! Sério, você não fazia isso), ou criávamos alternativas para que ambas templates entregassem a mesma estrutura.
Mas a versão 4.3 do WordPress tem uma proposta para facilitar nossa vida.
Apresentando a função is_singular()
O WordPress possui, desde a versão 1.5, uma função condicional para checar se um post singular está sendo exibido, ou seja, se a url requisitada é de um post, se é de algum tipo de conteúdo personalizado, uma página, ou até mesmo de um anexo.
Isso significa que, is_singular(), retorna verdadeiro nos mesmos casos em que is_single(), is_page() ou is_attachment() também retornar verdadeiro.
Particularmente, em nossos desenvolvimentos na Apiki, começamos a utilizar com mais frequência a função a partir da versão 3.0, quando foi adicionado o parâmetro $post_type, que valida se a url requisitada é uma singular de um tipo de post personalizado específico.
[code]is_singular( ‘custom_post_type’ );[/code]
Singular.php como template de um tema
A função is_singular() era, até a versão 4.3 do WordPress, a única no contexto de funções condicionais de template que não possuía seu próprio arquivo correspondente.
Era. A partir de agora podemos criar em nossos temas o arquivo singular.php, em substituição às templates page.php e single.php. Vejam na imagem abaixo o exemplo de um tema com o padrão 4.2- e seu respectivo no padrão 4.3+:
Como a template singular.php segue as regras da função is_singular, ela pode ser utilizada para exibir a single de qualquer tipo de conteúdo como posts, páginas, anexos e também tipos de posts personalizados. Caso o WordPress não encontre no tema ativo nenhuma template específica para esses conteúdos, ele passa a incluir a template singular.php antes de chegar na index.php, como pode ser visto na hierarquia de templates atualizada abaixo:
É isso pessoal.
Acompanhe nosso blog e fique por dentro de todas as novidades da versão 4.3 do WordPress.