Fevereiro 7th, 2010 por Sérgio Soares
Saiba como obter diferentes Templates para diferentes Posts no Wordpress
Categoria(s): Wordpress
Há dias tive a necessidade de criar uma página especifica para um determinado post, de uma determinada categoria. Como sabem, o wordpress disponibiliza uma página php para apresentar todos os posts, a página single.php. Neste tutorial vamos aprender um pequeno truque para contornar esta situação e obter diferentes templates para diferentes posts.
O problema..
No projecto que estou a desenvolver, um site desportivo, tenho várias categorias (entrevistas, notÃcias, jogos agendados, etc) que precisam de ter um determinado template. Ou seja, não quero usar o ficheiro single.php para cada um deles… Como resolveriam este problema?
A resposta a esse problema!
Muito simples. Vamos imaginar o seguinte. Eu tenho uma categoria chamada Wordpress. Esta categoria possui um ID que a define, e vai ser a partir daqui que vamos criar os diversos templates para as diversas categorias.
Para saber o ID de uma categoria, podem ir à secção Posts – Categorias e ao passarem o rato sobre a categoria, o seu ID aparece na barra inferior do teu explorador.
Resumindo, o que vamos fazer é criar um ficheiro single para cada ID das categorias. Como?
O código
Abra o ficheiro single.php e no topo deste insira o seguinte código.
<?php
$category = get_the_category();
$currentcat = $category[0]->cat_ID;
if (file_exists(TEMPLATEPATH."/single-$currentcat".".php")) {
include(TEMPLATEPATH."/single-$currentcat".".php");
} else {
?>
Primeiro o que este código faz é obter a categoria do post em questão, através da tag get_the_category(); guardando essa informação numa variável. De seguida atribui a primeira categoria à variável $currentcat.
Atenção que este método pode ter algumas anomalias se existirem várias categorias referentes ao mesmo post.
A seguir, o código php final faz com que seja aberto o ficheiro single correspondente à primeira categoria. Caso esse ficheiro não exista, abre o single.php como seria de esperar.
Para finalizar, precisamos de colocar o seguinte código no final do ficheiro single.php, normalmente antes do footer.
<?php } ?>
Depois de ter colocado o código completo no ficheiro single.php, encontre o ID da categoria onde quer utilizar um determinado template e crie um novo ficheiro com o nome single-ID.php(onde ID é o id da categoria).
Este método vai dar-lhe a opurtunidade de ter vários templates para diferentes categorias, o que pode ser muito vantajoso em alguns projectos.
2 Comentários »
olá Sergio td bom?
estou com o mesmo problema que vc, por isso cai aqui.
uma coisa não ficou clara para mim:
eu vou usar o codigo para q a single.php pegue somente uma categoria. ate aqui ok.
e como eu faço para mudar o template para outra categoria?
abs
Ariel
Queres usar um Gratavar(imagem pessoal), clica aqui








1
Fevereiro 22nd, 2010
ariel disse: