Snippets e Shortcodes

WordPress: lista de posts populares na sidebar estilo Twitter

Crie listas de links para artigos no mesmo estilo de tempo relativo do Twitter.
Anúncios Google

O Twitter tem suas caixas de compartilhamento de conteúdos, sendo uma das características mais marcantes o modo de exibição da data de postagem, no estilo “XX dias/horas/minutos atrás”. No WordPress, podemos repetir facilmente esse efeito, colocando em um widget na sidebar – ou onde você preferir – uma lista com suas postagens mais populares de acordo com o número de comentários recebidos.

Tudo que precisamos é adicionar um widget de texto no local escolhido, na seção Aparência > Widgets de seu painel de controle do blog WordPress. Porém, para nosso código funcionar, o widget comum de texto não servirá, já que ele leverá partes de código PHP, que não serão executados. Precisaremos de um plugin como o PHP Code Widget – além de adicionar uma pequena função em nosso arquivo functions. php.

Uma vez instalado, vá até a página indicada antes e arraste um widget PHP Code para a sidebar.

Nele, cole o seguinte código:

<?php 
$the_query = new WP_Query('showposts=5&orderby=comment_count');
while ($the_query->have_posts()) : $the_query->the_post(); ?>
<div class="container" style="height:55px;">
<span class="linksposts">
<a rel="nofollow" title="<?php the_title(); ?>" href="<?php the_permalink() ?>" rel="bookmark"> <?php the_title(); ?></a>
</span>
<span class="datapubli"><?php
echo time_ago(); ?>
</span>
</div><?php
endwhile;
wp_reset_query(); ?>

Salve o widget e confira no seu blog, em condições normais ele já estará funcionando, mostrando os últimos cinco artigos que você publicou.

Para modificar seu widget, use CSS. Note que o código já contém algumas classes CSS como sugestão, com uma estrutura básica usando div e span para isolar as partes, basta usá-las para indicar na folha de estilos as alterações que queira fazer, como cor de fundo, largura, etc.

Note que os posts serão mostrados pelo número de comentários, como definido na linha

showposts=5&orderby=comment_count

showposts define que serão exibidos 5 postagens; orderby ordena os posts pelo número de comentários.

Para exibir o tempo decorrente desde a publicação, usa-se o…

<?php echo time_ago(); ?>

É preciso inserir uma pequena função na sua página functions.php para que ela funcione.

function time_ago() { echo human_time_diff(get_the_time('U'), current_time('timestamp')) . ' atrás'; } 

O contador de visitas não faz parte deste código, já que exige outro plugin e mais código, o que fica de fora do assunto aqui.

É isso, testem e vejam o que conseguem com mais estilização; dá pra deixar a caixa com um estilo bem parecido com a caixa de tweets se você quiser.

Author

Fundador do Tutoriart em 2010, é ex-instrutor de Photoshop, design web e gráfico. Em quase uma década de redação online, tem cerca de 1500 artigos publicados. Gerencia também o Memória BIT.

2 Comments

  1. tharbastos Reply

    Isso aí pega os comentários padrão do wordpress. E se caso for disqus ou facebook comments? Eu faria um loop percorrendo os posts pegando o permalink e usando a api dos 2 ( facebook ou disqus) pra contar os comentarios, dai eu pegava o valor e ia comparando pra ver qual teria mais. Mas isso daria trabalho, tem uma forma mais simples?

Write A Comment

Pin