Ordenando por mais vistos

Uma das tarefas ingratas que não existem no wordpress é uma ordenação pelos posts mais vistos.
Recentemente tive que implementar isso num blog que estou desenvolvendo e apanhei um pouco. Aqui vai uma receitinha de bolo para quem quiser implementar isso:

Primeira coisa… instale o plugin wp-postviews
Ative ele no seu blog e boas…

Agora vem a parte que vai complicar…
No layout que fizemos, a index é montada ou pelos mais recentes ou pelos mais vistos… para poder fazer isso e manter uma url separada para cada, eu dupliquei a página index.php, renomeiei ela para algo como page_mais_vistos.php e adicionei o seguinte código no topo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
/* Template Name: Home Mais Vistos */
// Acima temos o nome do template que sera usado na página personalizada
get_header();
global $more;    // Declare global $more (before the loop).
$more = 0;       //
 
$posts_per_page = get_query_var('posts_per_page');
$paged = intval(get_query_var('paged'));
$paged = ($paged) ? $paged : 1;
$args = array(
   'posts_per_page' => $posts_per_page,
   'paged' => $paged,
   'more' => $more = 0,
   'meta_key' => 'views',
   'orderby' => 'meta_value_num',
   'order' => 'ASC',
);
query_posts($args);
?>

O resto fica normal… note que eu inclui o get_header() do wordpress nessa coisa toda… (só pra vc não inclui-lo duas vezes).

Bom… agora vamos no admin do wordpress e criamos uma página nova – nomeie ela de mais vistos ou algo do genero…
Na barra lateral, vc tem uma opção “Page Attributes”… nela escolha o template “Home Mais Vistos” (ou o nome do template que você colocou no comentário do arquivo que você criou).

Publique a página…

Se tudo correu bem, após navegar um pouco nos seus posts… você acessando a url http://URL_DO_SEU_BLOG/mais-vistos, você deveria ter uma página, igual a index do seu site, só que com a ordenação baseada nos posts mais vistos.

Acho que é isso…

Compartilhe:
  • Print
  • email
  • Add to favorites
  • Digg
  • StumbleUpon
  • Yahoo! Buzz
  • Google Bookmarks
  • FriendFeed
  • Slashdot
  • Tumblr
  • LinkedIn
  • del.icio.us
  • Google Buzz
  • Ping.fm
  • Facebook
  • Twitter

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

Back to top

Page optimized by WP Minify WordPress Plugin