single.php: Crie templates para os posts no WordPress
No WordPress atualmente você tem opções para criar templates para as páginas (pages.php) e pode criar templates para diferentes pages e também pode criar um template para cada categoria salvando seus arquivos como category-20.php onde o 20 é o ID da sua categoria, mas não tem opção de criar varios templates para o arquivo single.php que é a exibição de quando você acessa um post individual.
Exixte uma forma muito simples para que você possa criar um sigle.php diferente para cada categoria de post.
Tutorial:
1. Abra ou crie o arquivo functions.php na pasta do seu tema
2.Dentro do arquivo functions.php insira o código como o abaixo.
<?php add_filter('single_template', create_function('$t', 'foreach( (array) get_the_category() as $cat ) { if ( file_exists(TEMPLATEPATH . "/single-{$cat->term_id}.php") ) return TEMPLATEPATH . "/single-{$cat->term_id}.php"; } return $t;' )); ?>
3.Agora basta você criar os arquivos single seguido com um traço e o ID da categoria do template como por exemplo single-5.php, no formato que você desejar, lembrando que isto é um exemplo você deve criar de acordo com os IDs das categorias que você tem no seu WordPress.
13 Comentários
-
Muita boa dica, já tinha precisado disso e não consegui contornar a situação na época.
Valeuz! -
Precisei usar este esquema em um site que fiz com o WordPress em que cada tela tinha um template diferente, acho que eles poderiam implementar isso no WordPress como os templates de categorias que já existe.
-
é verdade

Já pensou e fazer essa sugestão a equipe q desenvolve o WP ?[]´s
-
Artigo muito útil!
Obrigado -
Seu post me tirou várias dúvidas.
Obrigado.
-
É uma boa mesmo. Outra coisa valeu por ter respondido minha resposta, pois vi que vou ter que ajustar meu css.
-
Que bom que te ajudou. Este é o objetivo deste blog.
-
Já havia tentado plugins, tutoriais complicados, e o mais simples funcionou.
Obrigado. -
Eu fiz isso e funcionou em parte. Em algumas categorias aparece uma sidebar e os comentários novamente após o footer.
Por Exemplo:
Na categoria Notícias eu tenho algumas subcategorias. Na subcategoria Geral deu super certo. Mas nas outras subcategorias acontece o que disse acima.E estou utilizando a mesma estrutura em todos os singles, mudando apenas as fontes e uma imagem no topo.
O que pode estar acontecendo?
-
Oi, Bruno. Eu atualizei o post sobre este tópico, existe uma maneira melhor de fazer isso, entre la para conferir. http://www.mateusneves.com/wordpress/single-php-crie-templates-para-os-posts-no-wordpress/
-
Cara, muito obrigado mesmo! Resolveu meu problema!!! Eu já estava quase que refazendo o portal do zero!!!!
Valeu mesmo. Obrigadão!
-
Que bom, cara. Quando aprendi esta funcionalidade foi uma solução que uso em praticamente todos os sites que monto com WordPress.
-
Muito bom post. E gostei do design desse também. Show!