Desenvolvimento - Webord.net

WordPress body_class(); Function

Estes dias eu comecei a desenvolver um tema chamado de DevStart, o qual vou disponibilizar aqui no blog, e me deparei com um problema ao usar esta função maravilhosa do WordPress.

A função body_class(); é muito útil quando você tem que desenvolver um tema e gostaria de fazer um pouco de dinamismo nas cores, por exemplo, pois colocando-a dentro da tag <body> adicionamos classes à tag que dizem algumas informações sobre que página o usuário está visitando, e desta forma podemos aplicar o devido CSS.

O problema que eu me deparei ontem quando comecei a implementar esta função, foi que ela adiciona todo o texto class="classes", e isso é ruim, mesmo que a função nos permita adicionar nossas classes, não me permite usar um plugin em jQuery para descobrir qual navegador o sujeito usa. Então fiz um pequeno hack para fazer a função apenas adicionar as classes.

Bom primeiro vou explicar como é o uso normal da função. A função, como eu já citei anteriormente deve ser colocado dentro da tag <body>, da seguinte forma:

<!--Cabeçalho acima-->
<body <?php body_class(); ?>>
<!--Corpo da página abaixo-->

Se for usado desta forma teremos o seguinte resultado quando estivermos na home do nosso blog e logados no sistema:

<!--Cabeçalho acima-->
<body class="home blog logged-in">
<!--Corpo da página abaixo-->

O que eu fiz foi bem simples, utilizando uma função chamada get_body_class();, que é a função que faz todas as verificações e define em uma variável todas as classes que devem ser adicionadas e retorna um array, eu usando o implode(); do PHP eu criei uma função no arquivo function.php para solucionar o nosso problema e apenas escrever as classes.

Então vamos abrir o arquivo functions.php e vamos adicionar o seguinte código:

function echo_body_class() {
	echo implode(" ", get_body_class());
}

Este código cria a função echo_body_class(); e transforma o array retornado em apenas uma string separando cada um dos resultados com um espaço.

Bom agora acesse seu arquivo que contém a tag <body> e substitua-a pelo seguinte:

<!--Cabeçalho acima-->
<body class="<?php echo_body_class(); ?>>">
<!--Corpo da página abaixo-->

Então teremos o mesmo resultado que com a função body_class(); porém agora poderemos adicionar todas as classes que nos forem interessantes. Problema resolvido.

Ahh e sobre este tema que estou desenvolvendo, ele vai ser colocado aqui no blog para download, e sua principal função é servir como tema base para o desenvolvimento de outros.

, , ,

Webord.net na DevInRio 2009

Dev in Rio

É com muito orgulho que apresentamos o Dev in Rio 2009, uma conferência inédita sobre desenvolvimento de software que acontecerá no próximo dia 14 de setembro no Centro de Convenções SulAmérica, no Rio de Janeiro!

O evento está sendo organizado por Guilherme Chapiewski e Henrique Bastos e a realização está sendo coordenada pelas Arteccom.

A programação conta com três palestrantes nacionais e três internacionais falando sobre Open Source, Java, Ruby on Rails, Django e desenvolvimento ágil de software. Continue lendo a postagem para conhecer os palestrantes.

Read More

, , , , , ,

Como fazer um botão para Random Post no WordPress

Se você já visitou o FailBlog, deve saber que o melhor recurso já feito para blogs de humor, é o Random Post, pois este possibilita olhar notícias de maneira randômica.

Bom vamos a parte de desenvolvimento do dito cujo, então primeiro vamos analisar uma busca ao banco de dados do WordPress:

SELECT guid FROM wp_posts WHERE post_type = 'post' AND post_status = 'publish' ORDER BY RAND() LIMIT 1

Agora iremos entender o porque de usar uma busca ao Banco de Dados e o que cada uma das partes desse código irá fazer. Iremos usa-la pois consome menos memória do servidor que o loop do WordPress, o que é muito bom para blogs grandes.

Entendendo o código de busca ao Banco de Dados:

  • SELECT guid – Onde guid é apenas a coluna onde se encontra a URL do Post
  • FROM wp_posts – Busca na tabela dos posts do blog
  • WHERE post_type = 'post' – O WordPress salva na mesma tabela páginas, arquivos e posts, então estamos especificando que desejamos apenas Posts
  • AND post_status = 'publish' – Apenas posts já publicados, nada de rascunhos ou posts agendados
  • ORDER BY rand() – Bom temos que escolher de maneira randômica
  • LIMIT 1 – Por fim limitamos para apenas 1 post

Agora passando para a parte do código PHP que irá receber a URL e fazer o botão. Segue o código e logo abaixo uma explanação do que acontece:

<?php
$randomPost = $wpdb->get_var("SELECT guid FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'publish' ORDER BY rand() LIMIT 1");
echo '<a href="'.$randomPost.'">Random Post</a>';
?>

Bom nome começo do código temos uma variável que irá receber o valor da URL que pegamos em nosso banco de dados, e agora passamos tal valor para o HTML, em uma âncora[<a href="">].

Caso você queira entender um pouco como funciona a relação do Banco de Dados do WordPress sugiro dar uma olhada na página do Codex.

Qualquer dúvida comente que eu irei responder, caso você adicione algo interessante ao artigo com certeza irei colocar créditos.

[ Via WpGuy ]

, , , , , , ,