Posts Populares sem plug-in

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!

Rate this post

Quer aprender a ganhar dinheiro com Google Adsense em blogs?

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 no AboutMe

Website: http://querocriarumblog.com.br

11 Comentários

  1. esse codigo exibe quantas visualizaçoes as postagens tiveram? e se nao tiver o que fazer para exibir , por exemplo post x 5.200 viens tipo assim

  2. Stenio Araújo

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

  3. eduardo

    não está aparecendo o codigo para colocar no sidebar.php

    • Caio Ávila

      Também não está aparecendo aqui! :/

  4. Amigo, eu fiz o código, mas não sei como usar o shortcode?
    como faz pra exibi-lo num post??

    abraços

    • LordMarcio,
      não há shortcode, você tem que usar o 2o bloco do código onde quiser que os posts apareçam.

  5. Rodrigo

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

  6. 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;
    }

Deixe uma resposta