Como mostrar os artigos mais comentados do blog

Os artigos mais populares de um blog podem ser classificados de duas maneiras. A primeira é pela quantidade de acessos que eles possuem. A segunda pela quantidade de comentários. Eu prefiro classificar meus artigos pela quantidade de comentários, pois acessos podem não refletir a realidade sobre o artigo, mas o comentário sim, pois o leitor parou, pensou e comentou.

Se você também pensa assim segue um código para os artigos mais comentados do blog. Lembrando que esse código é para blogs criados através da plataforma wordrpess.org. Você pode inserir esse código em qualquer arquivo de seu template. Eu inseri na sidebar, veja ao lado como ficou.

<h2>10 artigos mais comentados</h2>
<ul>
<?php $result = $wpdb->get_results("SELECT comment_count,ID,post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , 10");
foreach ($result as $post) {
setup_postdata($post);
$postid = $post->ID;
$title = $post->post_title;
$commentcount = $post->comment_count;
if ($commentcount != 0) { ?>
<li><a href"<?php echo get_permalink($postid); ?>" title="<?php echo $title ?>">
<?php echo $title ?></a> (<?php echo $commentcount ?>)</li>
<?php } } ?>
</ul>

O que achou do código? Deixe sua impressão nos comentários.

Quer aprender como ganhar dinheiro na internet com conteúdo gratuito?

Gustavo Freitas

Problogger, empreendedor digital e criador do Método Start. Você conhece todos os meus projetos no Gustavo Freitas.Net.

Website: http://gfsolucoes.net

    26 Comentários

    1. Marcio Oshiro

      Meu amigo salvou o dia hoje, muito obrigado pelo código.
      Só uma duvida se não for abusar, como retiro aquela numeração da frente do comentário? Não digo na e sim uma que vai aparecendo conforme o numero de comentários?

    2. Aparece isso

      # get_results(“SELECT comment_count,ID,post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , 10″); foreach ($result as $post) { setup_postdata($post); $postid = $post->ID; $title = $post->post_title; $commentcount = $post->comment_count; if ($commentcount != 0) { ?> ” title=””> ()

    3. Glaucia

      Gustavo esse código é maravilhoso. Estava usando um plugin, mas não conseguia estilizar do jeito que eu queria. Com esse código ficou incrível. Eu gostaria que a posição do post aparecesse(1, 2, 3…) e ainda não tenho certeza de como fazer isso. Alguma dica?

      • é simples, bastar substituir a tag ul por ol que irá ordenar em lista numérica,
        abraço.

        • Glaucia

          Obrigada, pelo retorno, Gustavo.

          Mas eu enfeitei um pouco meu “Top comentados” e tive que adaptar um pouco, portanto não posso usar “ul” com list-style ativada porque ele atribui o número 1 para todas as linhas.Cada linha está dividica com 3 “li”: posição que quero que apresente de 1 a 5 (ele está todo estilizado); logo que aprece uma miniatura de uma foto do post (esse eu consegui uzando campos personalizados e o nome que aparece o título do post. Apenas a numeração de 1 a 10 eu não sei como fazer um loop. Meu código ficou assim:

          ” get_results(“SELECT comment_count,ID,post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , 5″);
          foreach ($result as $post) {
          setup_postdata($post);
          $postid = $post->ID;
          $title = $post->post_title;
          $commentcount = $post->comment_count;
          if ($commentcount != 0) { ?>

          Gostaria de algo que randomizasse o número da posição dos posts

          <img src="/ID,$key,true);?>” alt=”” border=”0″ />

          <a href="” title=””>
          Comentários

          –”

          — Outra dúvida: Desculpe eu estou aprendendo php agora

          É possível usar esse mesmo código para apresentar os leitores que mais comentam? Quais modificações são necessárias?
          Obrigada

        • Glaucia

          Obrigada, pelo retorno, Gustavo.
          Acho que a mensagem anterior que te enviei estava um pouco confusa, então estou reescrevendo

          Eu enfeitei um pouco meu “Top comentados” e tive que colocar a “ul” no meio do código e portanto não posso usar “ul” ou “ol” porque ele atribui o número 1 para todas as linhas. Cada linha está dividica com 3 “li”:
          1) li-posição mostra o número da posição de cada post (está estilizado e portanto quero que a numeração apareça nessa li);
          2) li-logo mostra uma miniatura de uma foto do post (consegui uzando campos personalizados
          3) li-nome aparece o título do post.

          Dentro da li-logo eu chamei uma imagem com campo personalizado
          Dentro da li-nome eu chamei a parte respectiva do código que você postou
          Mas dentro da li-posição eu não sei o que posso jogar…

          – Outra dúvida: Desculpe eu estou aprendendo php agora..

          É possível usar esse mesmo código para apresentar os leitores que mais comentam? Quais modificações são necessárias?
          Obrigada

    4. kra esse código caiu como uma luva no meu código… parabéns pelo blog.

    5. I know this is not exactly on subject, however i’ve a blog using the blogengine platform as well and i’m getting issues with my comments displaying. There has to be a setting i am forgetting? Maybe you are able to help me out?

    6. Olá Gustavo,

      Os dois critérios que você indicou são muito importantes, e acredito que o melhor reflete a popularidade é o número de comentários.

      Vou buscar instalar um widget no meu blog para mostrar essa relação de artigos!

      Um abraço.

      • Iúri,
        com certeza.
        Instale sim, sempre traz benefícios, como por exemplo aumentar o número de pageviews, pois destaca para o visitante quais os melhores artigos de seu blog na opinião do leitor,
        abraço.

    7. Muito interessante Gustavo, atualmente uso plugin para essa função, mas certamente irei realizar os procedimentos.

      Abraços!

      parabens amigo ?

    8. Cara, coloquei este código em um dos meus blogs e não funcionou!

      Deu erro de syntax php

      Veja o erro:

      “syntax error, unexpected T_STRING in /home/site/public_html/wp-content/themes/site/sidebar.php on line 44”

      Não sei o que pode ter causado isto. Poderia me ajudar?

    9. Eu estou testando mostrar o número de visualizações e depois testarei o número de comentários pra comparar a reação dos leitores. Eu acho que o número de visualizações atrai mais pelo número ser maior, mas acho que tem que ter bom conteúdo no blog pra gerar comentários, senão se torna um tiro nos pés!

      Paz no coração e Luz na razão.

      Thiago Blauth Ferreira Escreveu um post sobre… Como fazer para posicionar seu blog apartir de uma análise da concorrência!

    10. @Laurentino Mello – estou abolindo os plugins que podem ser substituídos por códigos simples. dessa forma meu blog abre mais rápido e evito problemas de compatibilidade,
      um abraço.

    Deixe uma resposta