Há 12 anos simplificando a Tecnologia e a Internet

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.

Gustavo Freitas
dicas blog

26 Comentários

  • Dilnei Soethe Spancerski

    Muito boa a matéria irmão, valeu mesmo!

  • 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?

  • Samara

    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=””> ()

    • Gustavo Freitas

      Samara,
      copie o código novamente, por favor, e me diga se agora deu certo.
      Sucesso.

  • 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?

    • Gustavo Freitas

      é 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

  • Weliton

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

  • closet organization systems

    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?

  • Iúri

    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.

    • Gustavo Freitas

      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.

  • renato coutinho

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

    Abraços!

    parabens amigo ?

  • Rafael Botelho

    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?

  • Christiano (Clube do Dinheiro)

    Excelente dica! Estava mesmo à procura disso (na verdade, foi exatamente isso que procurei no Google 😀 ).

    Vou salvar nos favoritos seu blog, tanto para mais tarde fazer isso, como para tornar a visitar seus artigos. 😉
    .-= Christiano (Clube do Dinheiro)´ publicou o artigo blog ..Ganhando dinheiro com anúncios em sites ou blogs – parte 1 =-.

  • PcSaudavel.com

    Gustavo

    Ótimas dicas esse artigo vai dar uma boa ajuda aos usuários de WordPress que tem dificuldade ou que querem melhorar a otimização do Blog.

    Um Abraço

    Roberto

    PcSaudavel.com Escreveu um post sobre… Mais Servidores DNS para o Speedy

  • Gustavo Freitas

    @Thiago Blauth Ferreira – bom conteúdo é requisito em qualquer blog,
    um abraço.

  • Thiago Blauth Ferreira

    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!

  • Gustavo Freitas

    @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.

  • Laurentino Mello

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

    Abraços!

    Laurentino Mello Escreveu um post sobre… Descubra agora qual o melhor navegador para o seu PC.

Deixe uma resposta

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.