fonte: Blog Negócios na Net

O WordPress é uma ferramenta do tipo CMS, extremamente versátil e poderoso na sua capacidade de armazenar e exibir resultados provenientes da produção dinâmica de informação. É assim possível customizar, através dos filtros adequados, aquilo que é mostrado. No entanto a “Home Page”, sendo a “rosto” do site, pode recorrer a algumas rotinas extra em PHP que levam um pouco mais além essa tarefa de se conseguir que o WordPress mostre esse “rosto” de uma maneira totalmente única e personalizada, diferente das demais páginas.

Isto seja no que respeita aos conteúdos,  ou seja no que respeita à forma (“layout”) visto que, em conjugação com as “folhas de estilo”, é possível alterar o aspecto gráfico, fora e dentro da “home page”, consoante as conveniências, criando assim um site de “geometria variável”.

 

Customizar a Home do WordPress

Personalizar

 

Começo por referir que é de todo interesse pôr o PHP a trabalhar no computador de casa para esta tarefa, com os servidores adequados e cuja instalação já explicamos noutro artigo; tarefa simples e de fácil execução e muito importante para evitar fazer “crashar” o site quando este está online. Partindo do princípio que isto já está feito, aqui seguem as ideias.

 

1. Tirar partido das meta keys

As “meta keys” estão disponíveis nos campos personalizados de cada “post”. Podemos criar as “meta keys” que quisermos, passando estas a constituir um elemento adicional na filtragem da informação produzida pelo blog. Vamos então criar uma “meta key” chamada pagina1; ela terá dois valores possíveis: 1 e zero (em branco). O valor “1″ significa que o “post” em questão será exibido na home page. Provavelmente, dependendo do template que estiver a usar, a exibição dos ficheiros da “home” fica por conta do ficheiro index.php. Assim neste iremos colocar esta rotina, antes dos artigos começarem a ser “descarregados”:


<?php if (is_home()) : ?>
<?php query_posts(‘meta_key=pagina1&meta_value=1′);  ?>
<?php if (have_posts()):  ?>
<? while (have_posts()) : the_post(); ?>
<a href=”<?php the_permalink(); ?>”><?php the_title(); ?></a>
<?php the_content(‘Continue a Ler’); ?>  <!– ou em alternativa <?php the_excerpt(); ?> –>
<?php endwhile; ?>
<?php endif; ?>
<?php endif; ?>


O que é feito em cima, então?  Se se estive na “home” (note que o ficheiro index.php pode ser usado para executar outras tarefas de exibição fora da “home page”  – donde o comando <?php if (is_home()) : ?> – o programa vai verificar se  o “post” tem a meta key “pagina1″ com o valor 1, sendo somente estes artigos exibidos.

 

Podemos, assim ir alterando a “flag” da meta keyna área de administração de modo a fazer variar os posts na página da frente do site.

Deste modo apenas  determinados artigos, independentemente da sua data, autor, “etiqueta” ou categoria, serão mostrados na página principal.


2. Usar o operador incremental

Suponhamos agora que se pretendia personalizar o “layout” da página principal, alterando-a no sentido de ela exibir determinadas opções extra, mostrar ou não mostrar publicidade, evidenciar determinadas categorias de artigos com elementos gráficos suplementares, etc.

Normalmente poderá realizar esta tarefa recorrendo aos “widgets” na barra lateral sem mexer no código. Mas se pretender alterar algo dentro da zona do “miolo” da página já as coisas não são assim tão fáceis, mas mesmo assim nada demais. Então vamos lá:

 

<?php query_posts(‘meta_key=pagina1&meta_value=1′);  ?>
<?php if (have_posts()): ?>
<?php $count = 0; ?>
<?php while (have_posts()) : the_post(); ?>
<?php $count++; ?>


Introduziu-se agora um novo elemento que foi
 pôr o PHP dentro do loop que procede à exibição dos posts a fazer uma contagem incremental dos mesmos através da instrução 
<?php $count++; ?>. De seguida:

<?php if ($count < 2) : ?>
<!– Se for depois do primeiro post faz o que vier a seguir –>
<?php else : ?>
<!– Exibe os outros posts depois do primeiro –>
<?php endif; ?>


No caso acima a seguir ao primeiro artigo “especial” da Página Um aparece uma área para colocação de o que quer que  seja “interrompendo” o loop de exibição dos “posts”
. De seguida o  mesmo continua normalmente a não ser que apareça um novo if($count xx) com  outro valor qualquer.

 

3. Recorrer a operadores lógicos

Note que o que  se disse atrás é válido para qualquer outro ficheiro, como por exemplo o do “header” (cabeçalho da página), sendo igualmente possível  alterar aqui uma série de elementos através das condições adequadas para que a “home page” do site seja exibida de uma forma personalizada (customizada) e diferente das demais páginas que o compõem.

Vamos então agora modificar o header.php para que ele também apresente um layout autónomo na “home” do nosso blog WordPress. Haveria muitas alternativas, claro, mas aqui vai um exemplo:

 

<?php if (!is_home()){ ?>
<div id=”tomenota_!h”> <!–  Caixa especial a aparecer fora da home  –>
<?php if ( !function_exists(‘dynamic_sidebar’) || !dynamic_sidebar(“topo”) ) : ?>
<?php endif; ?>
</div>
<?php } else { ?>
<!–  o que faz se estiver na home  –>
<?php } ?>

 

Nem imagina a quantidade enorme de coisas que estas 7 linhas de código podem fazer por si ;-) .

Assim, mais uma vez,  e neste caso se não estiver na “home page” – donde o !is_home() –  oPHP vai buscar ao ficheiro que contem as “stylesheets“  o selector “tomenota_!h” que produz um determinado “layout”, coloca uma imagem de fundo, enfim o que decidir,  no cabeçalho da página.

Em sequência abre aí uma área para  posicionar um “widget” (com o nome de “topo”) – sendo este próprio  formatado através das folhas de estilo1 – para, por exemplo, inserir um “banner publicitário” ou outra mensagem especial, neste caso, como se disse, apenas fora da “home page”.

Et voilà! Com estas três sugestões simples, usando um conhecimento mínimo de programação em PHP, é possível alterar o seu template de modo a dar à “home” um aspecto diferente das restantes páginas. Não se esqueça, en todo o caso, de fazer cópias de segurança dos ficheiros que quiser editar2, porque qualquer modificação mal feita (basta esquecer-se de uma chaveta…) vai “crashar” imediatamente o programa e isso não queremos que aconteça…

 
qrCode