Pular para o conteúdo

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.

Marcações:

26 comentários em “Como mostrar os artigos mais comentados do blog”

  1. 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. 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?

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

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

  5. 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?

  6. 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!

Deixe uma resposta

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