Você está procurando uma maneira de exibir os posts mais populares usando meta de postagem de visualizações? Embora provavelmente exista um plugin para isso, criamos um snippet de código rápido que você pode usar para exibir os posts mais populares usando meta de postagem de visualizações no WordPress.
Você também pode precisar verificar como rastrear visualizações de posts sem um plugin usando meta de post.
Instruções:
Tudo o que você precisa fazer é adicionar este código ao arquivo index.php do seu tema:
<?
query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC');
?>
Observação: Se esta é a primeira vez que você adiciona trechos de código no WordPress, consulte nosso guia sobre como copiar / colar trechos de código corretamente no WordPress, para não quebrar acidentalmente seu site.
Se você gostou deste trecho de código, considere conferir nossos outros artigos no site, como: As 10 melhores empresas de hospedagem de sites e como escolher o melhor registrador de domínio.
Obrigado pelas dicas
Obrigado pelas suas dicas! Muito bom
Ei Kevin, como faço para exibir apenas os mais populares de "hoje"?
Obrigado, mas não consigo usar essas dicas. Por favor, me ajude de forma simples. Obrigado, mano
Como exibir posts populares relacionados a uma categoria específica em páginas de posts?? E como organizar esse widget se o adicionarmos usando functions.php??
Basta adicionar &cat= após DESC e inserir o número do ID da categoria.
isso é incrível, muito obrigado… estou tendo problemas com a navegação das páginas (next_posts_link/previous_posts_link) ele mostra a quantidade certa de posts, mas o mesmo post em cada página. como posso consertar isso?? por favor, me ajude!
obrigado!
É difícil dizer sem ver o código envolvido. Sugiro que me envie um e-mail e darei uma olhada rápida. http://wpsnipp.com/index.php/contact/
Você conseguiu resolver o problema com este usuário? Estou tendo o mesmo problema na minha página de posts populares. Todas as páginas paginadas mostram os mesmos posts populares da primeira página.
[…] Temos um bom tutorial aqui sobre Como Exibir Seus Posts Mais Populares nos Últimos 30 Dias. O WPSnipp.com também tem um bom artigo sobre como exibir posts populares usando dados de visualizações de posts. […]
Estou recebendo apenas dois posts no resultado. Embora eu tenha passado posts_per_page=5 para a consulta de posts.
Abaixo está o meu loop. Você pode me dizer onde estou errando?
query_posts(‘meta_key=views&orderby=views&order=DESC&posts_per_page=5’)
Eu também tentei sua consulta de posts, mas obtive o mesmo resultado. Apenas dois posts na saída.
essa consulta parece boa, eu assumiria, é claro, que você tem mais de 2 posts. Pode ser algum outro código dentro do seu template.
Isso acontece porque apenas dois dos seus posts foram visualizados e realmente possuem um campo personalizado chamado “views” criado. Eu tive o mesmo problema. Assim que um post era visualizado pela primeira vez, ele aparecia na página da categoria.
Eu tentei usar este código em um site que estou construindo, mas por algum motivo estranho ele atualizava 2 posts, sempre, e de forma aleatória, era sempre o mesmo, mas em algumas tentativas, mudou, eu realmente não sei por quê.
Pesquisando online, encontrei alguém usando global $post; e $post_id = (int)$post->ID; para obter o ID do post para usar em update_post_meta(); Então mudei meu código, e tudo está ok agora.
Oi Rafael, Interessante hhhmmmm, algumas pessoas também disseram que tiveram problemas, eu me pergunto se isso resolveria. Vou testar as coisas e fazer uma atualização. Obrigado pela informação….
Oi, tentei integrar este snippet na minha página, mas ele só funciona pela metade do que deveria. Toda vez que um post é clicado, o snippet de código também exibe o post seguinte como se tivesse sido visualizado por alguém. Espero que você entenda o que quero dizer 😉
Bem, este trecho funciona com o seguinte trecho para salvar as visualizações em postmeta, http://wpsnipp.com/index.php/functions-php/track-post-views-without-a-plugin-using-post-meta/
Então, se você tiver ambos configurados, deve funcionar bem. O trecho acima apenas permite que você ordene as postagens pelas visualizações de postagem se você tiver ambos os trechos configurados.
Obrigado pela sua resposta. (Infelizmente) Eu tenho ambos configurados e não funciona. É bem estranho para mim...
qual versão do wordpress você está executando atualmente? Eu testei em uma instalação limpa 3.1.2. Pode ser um dos seus plugins que está causando problemas.
qual versão do wordpress você está executando atualmente? Eu testei em uma instalação limpa 3.1.2. Pode ser um dos seus plugins que está causando problemas.
Estou executando a 3.1.1. Mas eu não acho que haja uma diferença significativa entre as duas, não é?
Não, 3.1.1 não deveria ser um problema, o que pode causar problemas é um plugin
Corrigindo meu próprio problema:
ordby=post_views_count deve ser alterado para orderby=meta_value_num meta_value_num foi adicionado ao core há algum tempo: http://core.trac.wordpress.org/ticket/10649Robert
Ahh ok legal, fico feliz que você conseguiu fazer funcionar. Você pode postar um novo link para o bug – recebo um erro de não encontrado.
Na verdade, ele está certo. Eu obtive apenas posts aleatórios usando este código e mudar o orderby para meta_value_num realmente corrigiu o problema. Obrigado
Daniel, você está correto, fiz alguns testes e acabei de atualizar o post, obrigado novamente pela contribuição.
A ordenação não funciona corretamente. Meus posts são ordenados assim: 9,8,7,6,5,4,3,2,1,10,11,12 etc.
Alguma ideia para obter a ordem correta: 12,11,10,9,8…?
Com uma pequena modificação também pode funcionar com wp-comments, já que usa o mesmo método:
query_posts('meta_key=views&orderby=views&order=DESC');
Não estou familiarizado com wp-comments, é um plugin?
Como você configura isso para mostrar os posts mais populares de hoje, esta semana ou este mês?
Isso é de todos os tempos, presumo.
Obrigado.
Você pode apenas adicionar um pouco à query_post &monthnum=’ . date( ‘n’, current_time( ‘timestamp’ ) )
query_posts(‘meta_key=post_views_count&orderby=post_views_count&order=DESC&monthnum=’ . date( ‘n’, current_time(‘timestamp’))’);
Caro Kevin, tentei isso, mas não está funcionando, aqui está meu código
por favor me ajude
estes mas não está funcionando aqui está meu código
query_posts(‘meta_key=post_views_count&orderby=post_views_count&order=DESC&monthnum=’ . date( ‘n’, current_time(‘timestamp’))); if ( have_posts() ) : while ( have_posts() ) : the_post();
caro Kevin eu tentei
por favor me ajude
seu valor de orderby não está correto,
por favor responda a Yashmistrey Kevin !!
Sangeeta, eu respondi, no trecho acima você pode ver
orderby=meta_value_num
Obrigado
[…] <? query_posts('meta_key=post_views_count&orderby=post_views_count&order=DESC'); ?> Fonte →Breadcrumbs Without a PluginBreadcrumbs podem ser uma técnica de navegação útil que oferece um link para o […]
Entendi!
Aqui está meu código.
<a href="”>
Legal, fico feliz que você conseguiu fazer as coisas funcionarem, este é um link para um código de exemplo que você também pode usar,
http://wpsnipp.com/wp-content/uploads/2011/03/post-views-per-page.txt
Não consigo fazer isso funcionar
Assim?
‘dropzone’, ‘posts_per_page’ => 2) ); ?>
have_posts() ) : $loop->the_post(); ?>
<a href="”>
Oi Alec,
Se você quiser limitar o número de posts, você faria isso
http://wpsnipp.com/wp-content/uploads/2011/03/posts-per-page-post-views.txt