Você está procurando uma maneira de rastrear visualizações de posts sem um plugin usando metadados de post? Embora provavelmente exista um plugin para isso, criamos um snippet de código rápido que você pode usar para rastrear visualizações de posts sem um plugin usando metadados de post no WordPress.
Instruções:
Adicione este código ao arquivo functions.php do seu tema ou a um plugin específico do site:
function getPostViews($postID){
$count_key = 'post_views_count';
$count = get_post_meta($postID, $count_key, true);
if($count==''){
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0');
return "0 View";
}
return $count.' Views';
}
function setPostViews($postID) {
$count_key = 'post_views_count';
$count = get_post_meta($postID, $count_key, true);
if($count==''){
$count = 0;
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0');
}else{
$count++;
update_post_meta($postID, $count_key, $count);
}
}
// Remove issues with prefetching adding extra views
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
Opcionalmente, adicione este código também a uma coluna no painel do WordPress que exibe as visualizações do post:
// Add to a column in WP-Admin
add_filter('manage_posts_columns', 'posts_column_views');
add_action('manage_posts_custom_column', 'posts_custom_column_views',5,2);
function posts_column_views($defaults){
$defaults['post_views'] = __('Views');
return $defaults;
}
function posts_custom_column_views($column_name, $id){
if($column_name === 'post_views'){
echo getPostViews(get_the_ID());
}
}
Esta parte do código de rastreamento de visualizações definirá as visualizações do post. Basta colocar este código abaixo dentro do arquivo single.php dentro do Loop do WordPress.
<?php
setPostViews(get_the_ID());
?>
Observação sobre cache de fragmentos: Se você estiver usando um plugin de cache como o W3 Total Cache, o método acima para definir visualizações não funcionará, pois a função setPostViews() nunca seria executada. No entanto, o W3 Total Cache possui um recurso chamado cache de fragmentos. Em vez do acima, use o seguinte para que setPostViews() seja executado corretamente e rastreie todas as suas visualizações de post, mesmo quando o cache estiver ativado.
<!-- mfunc setPostViews(get_the_ID()); --><!-- /mfunc -->
O código abaixo é opcional. Use este código se você quiser exibir o número de visualizações dentro de seus posts. Coloque este código dentro do Loop.
<?php
echo getPostViews(get_the_ID());
?>
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: 10 melhores plugins de depoimentos do WordPress e como configurar o rastreamento de autores no WordPress com o Google Analytics.
Você poderia me ajudar a estilizar a saída do echo? Quero colocar a contagem de visualizações no meu loop e consegui isso perfeitamente, mas como adiciono um CSS à saída para o texto? Alguma ideia sobre isso. Obrigado
Você poderia me ajudar a estilizar a saída do echo? Quero colocar a contagem de visualizações no meu loop e consegui isso perfeitamente, mas como adiciono um CSS à saída para o texto? Alguma ideia sobre isso. Obrigado
Você poderia me ajudar a estilizar a saída do echo? Quero colocar a contagem de visualizações no meu loop e consegui isso perfeitamente, mas como adiciono um CSS à saída para o texto? Alguma ideia sobre isso. Obrigado
Você poderia me ajudar a estilizar a saída do echo? Quero colocar a contagem de visualizações no meu loop e consegui isso perfeitamente, mas como adiciono um CSS à saída para o texto? Alguma ideia sobre isso. Obrigado
Você poderia me ajudar a estilizar a saída do echo? Quero colocar a contagem de visualizações no meu loop e consegui isso perfeitamente, mas como adiciono um CSS à saída para o texto? Alguma ideia sobre isso. Obrigado
Você poderia me ajudar a estilizar a saída do echo? Quero colocar a contagem de visualizações no meu loop e consegui isso perfeitamente, mas como adiciono um CSS à saída para o texto? Alguma ideia sobre isso. Obrigado
Você poderia me ajudar a estilizar a saída do echo? Quero colocar a contagem de visualizações no meu loop e consegui isso perfeitamente, mas como adiciono um CSS à saída para o texto? Alguma ideia sobre isso. Obrigado
É um conflito com o w3 total cache, as contagens estão aumentando automaticamente no meu blog. Se alguém visita qualquer um dos meus posts, as contagens dos outros posts também estão aumentando. Existe alguma solução para esse tipo de conflito?
Se você olhar o primeiro trecho na parte inferior, temos o seguinte:
o prefetching com alguns navegadores pode adicionar visualizações a posts não visualizados.
// Remove problemas com o pré-carregamento adicionando visualizações extras
remove_action( ‘wp_head’, ‘adjacent_posts_rel_link_wp_head’, 10, 0);
A outra coisa a ter em mente é que este trecho não está configurado para funcionar bem com plugins de cache.
Então, não tenho certeza, após mais testes, quão bem isso funcionará.
Se você olhar o primeiro trecho na parte inferior, temos o seguinte:
o prefetching com alguns navegadores pode adicionar visualizações a posts não visualizados.
// Remove problemas com o pré-carregamento adicionando visualizações extras
remove_action( ‘wp_head’, ‘adjacent_posts_rel_link_wp_head’, 10, 0);
A outra coisa a ter em mente é que este trecho não está configurado para funcionar bem com plugins de cache.
Então, não tenho certeza, após mais testes, quão bem isso funcionará.
Se você olhar o primeiro trecho na parte inferior, temos o seguinte:
o prefetching com alguns navegadores pode adicionar visualizações a posts não visualizados.
// Remove problemas com o pré-carregamento adicionando visualizações extras
remove_action( ‘wp_head’, ‘adjacent_posts_rel_link_wp_head’, 10, 0);
A outra coisa a ter em mente é que este trecho não está configurado para funcionar bem com plugins de cache.
Então, não tenho certeza, após mais testes, quão bem isso funcionará.
obrigado pelo código. Eu o atualizei para funcionar também com cache e sem usar funções do wordpress, mas alterando diretamente a tabela post_meta. Alguém está interessado nessas atualizações?
Olá Yves Jeanrenaud, acho que muitas pessoas no wpsnipp adorariam. Se você enviar o trecho junto com alguns detalhes, domínio, etc. Dessa forma, podemos dar o crédito a você, o que seria ótimo.
http://wpsnipp.com/index.php/contribute/
ok, farei isso 🙂
olá Yves, você pode compartilhar seu código? este trecho parece não funcionar bem, como Tam 'Heisenberg' Nguyen disse, minhas estatísticas também não batem.
olá Yves, você pode compartilhar seu código? este trecho parece não funcionar bem, como Tam 'Heisenberg' Nguyen disse, minhas estatísticas também não batem.
olá Yves, você pode compartilhar seu código? este trecho parece não funcionar bem, como Tam 'Heisenberg' Nguyen disse, minhas estatísticas também não batem.
Olá, você pode compartilhar o código aqui, por favor. Eu uso WP Super Cache e tenho problemas com o contador.
Eu fiz
Oi Yves,
Acho que nunca recebi o código de você, me envie um e-mail em contribute e eu entrarei em contato via Gmail para que você possa enviá-lo novamente se não se importar. Acho que o código pode ter sido o problema ao enviá-lo pelo formulário de e-mail.
ah, sério? minha culpa. Vou enviar novamente.
Excelente código, obrigado Kevin. Eu estava me perguntando se você já tentou usar isso em perfis de autor? Estou pensando em tentar usar outra versão deste código para armazenar valores nos metadados do autor e contar as visitas às suas páginas de perfil.
Obrigado!
Olá Abdulrahman Hariri,
Não, eu não tentei isso nos perfis de autor pessoalmente, mas não vejo nenhuma razão pela qual não funcionaria. Exceto por atualizar os metadados do usuário em vez dos metadados da postagem, isso deve funcionar bem.
Eu tentei e está funcionando :). Muito obrigado pela informação!
Excelente código, obrigado Kevin. Eu estava me perguntando se você já tentou usar isso em perfis de autor? Estou pensando em tentar usar outra versão deste código para armazenar valores nos metadados do autor e contar as visitas às suas páginas de perfil.
Obrigado!
É possível obter a contagem de visualizações de perfil com este código?
É possível obter a contagem de visualizações de perfil com este código?
[…] Rastrear visualizações de postagem usando metadados de postagem […]
É possível alterar o 'gatilho' do incremento? por exemplo, fazer com que certos links dentro da postagem aumentem o valor dos metadados da postagem sempre que forem clicados. Com isso, talvez possamos usar este snippet legal para outros usos. (ex: quantas vezes nosso link de download foi clicado)
Amigo, como fazer isso também funcionar no topo da postagem mais visitada com este código abaixo em seus scripts?
Se eu tiver um campo personalizado chamado 'views' e ele exceder 100 visualizações, como posso mostrar uma mensagem específica em um template?
Isso é perfeito. Exatamente o que eu estava procurando.
Você organizou o snippet de código muito bem e de forma fácil de entender. Agora, tenho a contagem de visualizações de postagens no meu blog. Obrigado.
Ótimo, isso funciona perfeitamente!
Isso é incrível, muito obrigado.
bom saber, 3q….
tanques
Obrigado pelo ótimo snippet, cara. Existe alguma maneira de acumular todas as visitas anteriores de cada uma das minhas postagens com a contagem de visualizações de postagem atual?
É possível resetar este contador? Então, digamos que eu queira exibir meus posts mais "populares da semana". Toda semana as visualizações de posts resetam para 0.