Como fazer um botão para Random Post no WordPress

Escrito por Gustavo Bordoni em Desenvolvimento, Wordpress no dia 27 de junho, 2009

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 ]

Decodifique seus pensamentos abaixo