Existe um plugin para WordPress chamado “Popular Posts”.

O que ele faz é pegar os seus posts mais populares (mais vistos) e colocá-los numa lista ordenado na sua sidebar, como um widget.

Mas, Se você não gosta de plug-ins, acha que seu site fica pesado e quer mesmo é programar, veja como colocar popular posts sem o uso de plug-ins.

posts, populares, popular, artigos, mais vistos, visualizados

Primeiramente, é necessário alterar o “functions.php” de seu tema. Adicione a seguinte função: (primeiro tente buscá-la, muitos temas já possuem essa função, portanto se você já a tiver, basta alterar para ficar igual ao código abaixo)

 function popularPosts($num) {
    global $wpdb;
    $posts = $wpdb->get_results("SELECT comment_count, ID, post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , $num");
     foreach ($posts as $post) {
        setup_postdata($post);
        $id = $post->ID;
        $title = $post->post_title;
        $count = $post->comment_count;
         if ($count != 0) {
            $popular .= ‘’;
            $popular .= ‘’ . $title . ‘ ‘;
            $popular .= ‘’;
        }
    }
    return $popular;
}

Feito isto, basta adicionar em “sidebar.php” aonde você deseja que os posts mais populares apareçam:

Para mudar o número de posts mostrados, basta alterar o número “10” do código acima para o número de posts desejado.

Gostaria de agradecer a Cristiane do blog Semantike, de onde veio a fonte para este post.

No post da Cristiane, ela também ensina a personalizar a sua lista, alterando o “style.css” com o seguinte código, cujo qual reproduzo abaixo:

/* posts populares */
.popular ul, .popular li {
        margin: 0;
        padding: 0px;
        list-style-type: none;
        font-family:‘Trebuchet MS’, Sans-Serif;
}
.popular ul {
        margin: 2px 0px 0px 0px;
}
.popular ul li {
        display: block;
        margin: 0px 0px 0px 3px;
        padding: 3px;
        color: #383838;
        margin-bottom: 2px;
        border-bottom: 1px solid #bdbdbd;
}
.popular ul li:hover {
        background-color: #eaeaea;
        text-decoration: none;
        color: #383838;
}
.popular ul li a:hover {
        color: #383838;
        text-decoration: none;
}
.popular ul li a:link, .popular ul li a:visited, .popular ul li a:active {
        text-decoration: none;
        color: #666666;
}
.popular h2 {
        margin: 0px;
        padding: 0px;
        color:#8722ad;
        letter-spacing: 1px;
        font-size: 20px;
        font-family:‘Trebuchet MS’, Sans-Serif;
}

Gostou? Comente!

Leonardo Rodrigues

Apaixonado por internet e curioso por SEO sempre está envolvido em algum projeto web. Você me encontra também no blog Negocio Seo e vê meus Projetos e Redes Sociais...

Participe da conversa

11 Comentários

Comentários

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

  1. Gustavo, muito bom código, mas esse não mostra os mais vistos, e sim os mais comentados, como mostrar os mais vistos?

  2. Bom dia, cara estou com uma duvida, quero colocar em meu site uma lista com os ultimos 20 posts, porém quero fazer isso sem widgets. Poderia me ajudar com isso? Abraço!!!

  3. Por algum motivo que o Gustavo ainda vai verificar a primeira codificação (que é para adicionar no functions.php não está aparecendo.

    Portanto, segue abaixo:

        function popularPosts($num) {
        global $wpdb;
        $posts = $wpdb->get_results("SELECT comment_count, ID, post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , $num");
         foreach ($posts as $post) {
            setup_postdata($post);
            $id = $post->ID;
            $title = $post->post_title;
            $count = $post->comment_count;
             if ($count != 0) {
                $popular .= ‘’;
                $popular .= ‘’ . $title . ‘ ‘;
                $popular .= ‘’;
            }
        }
        return $popular;
    }