Categoria WordPress

Personalizando O Loop

Após entender como O Loop funciona, já podemos começar a brincar com o WordPress controlando o conteúdo a ser caregado ou filtrado. Mais uma vez o WordPress facilita a vida dos desenvolvedores disponibilizando a função query_posts().

Essa função permite criar parâmetros de consulta ou adicionar novos parâmetros aos passados via endereço do navegador, dessa forma você pode: excluir uma categoria da pesquisa; re-ordenar os posts; limitar a quantidade de resultados; entre outras coisas.

O funcionamento do query_posts é simples, apenas adicione a função query_posts(’args’) antes da função have_posts() substituindo o args pelos argumentos desejados à sua consulta. Dessa forma o have_posts() irá ignorar os parâmetros passados pelo endereço e fará uma consulta baseada nos dados informados. Por exemplo, se você quer listar três posts aleatórios da categoria ‘destaques’ o script seria assim:

<?php query_posts(”&orderby=rand&showposts=3&category_name=destaques”); ?>
<?php while(have_posts()) : ?>
trecho da interface a ser repetido…
<?php endwhile; ?>

Note que cada atributo é separado pelo & assim como nos parâmetros passados via url. Dessa forma os desenvolvedores se sentem mais familiarizados com o código e não precisam ficar decorando a ordem dos atributos nem se preocupar em anular os que não serão usados.

Caso a sua intenção seja apenas filtrar os resultados de uma busca, adicione a variável $query_string à sua função query_posts, dessa forma o WordPress mescla os seus argumentos com os argumentos da página. Essa variável é muito importante quando você pretende manter a navegabilidade, como é o caso dos resultados de uma pesquisa ou do conteúdo da página inicial do site. Para exemplificar, segue como seria o script para retirar uma categoria dos resultados de uma pesquisa:

<?php query_posts(”{$query_string}&cat=-3″); ?>
<?php while(have_posts()) : ?>
trecho da interface a ser repetido…
<?php endwhile; ?>

Esse script deve ficar no arquivo search.php, então os posts encontrados na categoria 3 não aparecerão nos resultados das pesquisas e a paginação dos resultados continuará funcionando.

Leia Mais


O Loop

Para quem desenvolve em WordPress o mais importante é entender como funciona o loop. O Loop é a estrutura responsável por carregar os posts no WordPress, ele funciona em todos os templates do tema, esse é o motivo de sua grande importância. O que alimenta a consulta do loop são os parâmetros passados no endereço do site, carregados cronológicamente por padrão.

Por exemplo: Ao acessar o endereço http://www.dominio.com/?cat=1, estaremos passando para o loop que a categoria é igual a 1, assim, o loop irá carregar os posts que estejam dentro dessa categoria apenas.

Todos os resultados obtidos com a consulta são armazenados em um array chamado $posts e a cada volta do loop a chave do array é incrementada. Dessa forma, precisamos somente de uma estrutura de repetição que monte o conteúdo de cada post dentro da nossa interface. Para facilitar ainda mais, o WordPress disponibiliza duas funções que fazem quase todo o trabalho para nós, são elas:

  • have_posts(), que verifica se ainda existem posts no array; e
  • the_post(), que carrega os dados do post da vez.

A estrutura mais utilizada nos temas do WordPress é:

<?php while(have_posts()) : the_post(); ?>
trecho da interface a ser repetido…
<?php endwhile; ?>

Traduzindo para o programês, ficaria assim:

<?php enquanto(houverem_posts()) : carregue_o_post_da_vez(); ?>
trecho da interface a ser repetido…
<?php verifique_se_ainda_há_posts; ?>

Dentro do loop estarão disponíveis os atributos do post da vez, esses atributos podem ser acessados utilizando as funções the_title(), the_permalink(), the_content(), para citar algumas. Sabendo disso, para montar um template que mostre o título, o autor e a data de publicação de um post precisaríamos simplesmente adicionar as respectivas funções nos locais apropriados. Segue mais um exemplo:

<?php while(have_posts()) : the_post(); ?>
<h2><a href="<?php the_permalink(); ?>“><?php the_title(); ?></a></h2>
<p class=”data”><?php the_time(); ?></p>
<p class=”autor”><?php the_author(); ?></p>
<?php endwhile; ?>

Nesse exemplo teríamos, para cada post, uma tag “h2″ com o título do post, linkando para a página do post; uma classe “data” com a data do post; e uma classe “autor” com o autor do post. A formatação do html vai depender da sua interface.

Leia Mais


Modelo de Banco do WordPress 2.7

Modelo de Banco do WordPress-2.7

Modelo de Banco do WordPress-2.7

Estou disponibilizando aqui o modelo de banco do WordPress 2.7 que montei utilizando o DBDesigner4, uma excelente ferramenta, opensource, para modelagem de banco de dados. Para os programadores, é sempre bom ter um modelo do banco a mão para ajudar a montar as consultas e estudar as possibilidades de integração com os sistemas.

No anexo estão o arquivo xml editável do DBDesigner4 e a imagem do banco no formato png. Esse modelo não é uma representação fiél do banco, eu preferi montar uma forma simplificada que facilitasse a leitura e privilegiasse os relacionamentos principais evitando aquele monte de linhas cruzando as tabelas de um lado ao outro.

Leia Mais


Tema: Stallefish

Um mês após o lançamento do site estou colocando no ar o tema que desenvolvi. Você deve estar pensando: “Putz! Um mês pra fazer isso?!”. É… eu demorei mesmo, e sim! O tema é só isso.

Tentei basear o layout no conteúdo, sem distrações artísticas (até porque não tenho muitas habilidades com design) mas tentando compensar utilizando recursos lógicos.

Agrupei todas as informações relativas ao conteúdo num tipo de sidebar do lado esquerdo dos posts, páginas e comentários com a intenção de facilitar sua identificação e relacionamentos.

Ajax

O que destaco nesse tema é a navegação em ajax, de forma a diminuir um pouco o processamento do servidor e a banda da rede. Em contrapartida dificulta um pouco o histórico já que o navegador não registra o carregamento dos conteúdos assíncronos. Existem algumas soluções em javascript que simulam o histórico, mas ainda estou estudando a melhor forma de usá-las.

Personalização

O sidebar também é um ponto que ressalto nesse tema, os visitantes podem minimizar as caixas dos conteúdos que menos o interessam e, futuramente, também poderão ordenar as caixas privilegiando as mais utilizadas. O tema memoriza as configurações do visitante, assim quando ele voltar ao site, o sidebar estará devidamente ordenado e visível.

Internacionalização

Ainda estou traduzindo o tema… eu sei, eu sei, é muita prepotencia, mas vai que entra um gringo aí, né.

Leia Mais