Está procurando uma maneira de rastrear as visualizações de posts sem um plug-in usando post meta? Embora provavelmente haja um plug-in para isso, criamos um trecho de código rápido que você pode usar para rastrear visualizações de posts sem um plug-in usando post meta no WordPress.
Instruções:
Adicione esse código ao arquivo functions.php do seu tema ou em um plug-in 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 esse código também a uma coluna no administrador do WordPress que exibe as visualizações de 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()); } }
Essa parte do código de rastreamento de visualizações definirá as visualizações de posts. Basta colocar esse código abaixo no arquivo single.php dentro do Loop do WordPress.
<?php setPostViews(get_the_ID()); ?>
Observação sobre o cache de fragmentos: Se você estiver usando um plug-in 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 tem um recurso chamado cache de fragmentos. Em vez do método acima, use o seguinte para que a função setPostViews()
seja executada sem problemas e rastreie todas as visualizações de posts mesmo quando o cache estiver ativado.
<!-- mfunc setPostViews(get_the_ID()); --><!-- /mfunc -->
O código abaixo é opcional. Use esse código se quiser exibir o número de visualizações em suas postagens. Coloque esse 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 corretamente trechos de código no WordPress, para não danificar acidentalmente seu site.
Se você gostou desse snippet de código, considere dar uma olhada em nossos outros artigos no site, como: 10 melhores plug-ins de depoimento do WordPress e como configurar o rastreamento de autores no WordPress com o Google Analytics.
Would you happen to help me in styling the echo output. I want to put the views count on my loop and I accomplished that perfectly but how do I add a css to the output for the text? Any ideas on that. Thank You
Would you happen to help me in styling the echo output. I want to put the views count on my loop and I accomplished that perfectly but how do I add a css to the output for the text? Any ideas on that. Thank You
Would you happen to help me in styling the echo output. I want to put the views count on my loop and I accomplished that perfectly but how do I add a css to the output for the text? Any ideas on that. Thank You
Would you happen to help me in styling the echo output. I want to put the views count on my loop and I accomplished that perfectly but how do I add a css to the output for the text? Any ideas on that. Thank You
Would you happen to help me in styling the echo output. I want to put the views count on my loop and I accomplished that perfectly but how do I add a css to the output for the text? Any ideas on that. Thank You
Would you happen to help me in styling the echo output. I want to put the views count on my loop and I accomplished that perfectly but how do I add a css to the output for the text? Any ideas on that. Thank You
Would you happen to help me in styling the echo output. I want to put the views count on my loop and I accomplished that perfectly but how do I add a css to the output for the text? Any ideas on that. Thank You
Its conflict with w3 total cache, counts are increasing automatically in my blog. If anyone visits any of my post, the counts of rest of the posts are also increasing. Is there any solutions for this type of confliction?
If you look at the first snippet at the bottom we have the following as
prefetching with some browsers can add views to posts not viewed.
// Remove issues with prefetching adding extra views
remove_action( ‘wp_head’, ‘adjacent_posts_rel_link_wp_head’, 10, 0);
The other thing to keep in mind that this snippet is not setup to play nice with cache plugins
So I can’t be sure within much more testing how well this will work.
If you look at the first snippet at the bottom we have the following as
prefetching with some browsers can add views to posts not viewed.
// Remove issues with prefetching adding extra views
remove_action( ‘wp_head’, ‘adjacent_posts_rel_link_wp_head’, 10, 0);
The other thing to keep in mind that this snippet is not setup to play nice with cache plugins
So I can’t be sure within much more testing how well this will work.
If you look at the first snippet at the bottom we have the following as
prefetching with some browsers can add views to posts not viewed.
// Remove issues with prefetching adding extra views
remove_action( ‘wp_head’, ‘adjacent_posts_rel_link_wp_head’, 10, 0);
The other thing to keep in mind that this snippet is not setup to play nice with cache plugins
So I can’t be sure within much more testing how well this will work.
thanks for the code. I updated it to also work with caching and not using wordpress functions but directly altering the post_meta table. is anyone interested in these updates?
Hi Yves Jeanrenaud I think many people on wpsnipp would love it. If you send the snippet along with some details, domain etc. That way we can give you credit that would be great.
http://wpsnipp.com/index.php/contribute/
ok, will do 🙂
hi Yves, can you share your code? this snippet seem don’t work ok, as Tam ‘Heisenberg’ Nguyen said, my statistics don’t match too.
hi Yves, can you share your code? this snippet seem don’t work ok, as Tam ‘Heisenberg’ Nguyen said, my statistics don’t match too.
hi Yves, can you share your code? this snippet seem don’t work ok, as Tam ‘Heisenberg’ Nguyen said, my statistics don’t match too.
Hi can you pls share the code here. I use WP Super Cache and i have problem with the counter.
I did
Hi Yves,
I don’t think I ever got the code from you, send me an email on contribute and ill contact you via gmail so you can send it again if you don’t mind I think the code may have been the problem when sending it via the email form.
oh really? my bad. I’ll send it again.
Excellent code, thanks Kevin. I was wondering if you have tried to use this in author profiles? I am thinking of trying to use another version of this code to store values into author’s meta and count their profile page visits.
Thanks!
Hi Abdulrahman Hariri,
No I have not tried this in the author profiles myself however I can’t see any reason why it would not work. Other than updating the user meta rather than post meta should work well.
I’ve tried it and its working :). Thanks a lot for the information!
Excellent code, thanks Kevin. I was wondering if you have tried to use this in author profiles? I am thinking of trying to use another version of this code to store values into author’s meta and count their profile page visits.
Thanks!
Is it possible to get the profile viewers count with this code?
Is it possible to get the profile viewers count with this code?
[…] Track post views using post meta […]
Is it possible to change the ‘trigger’ of increment? for example, make certain links inside the post to increase the post-meta value whenever it’s being clicked. With this, maybe we can use this cool snippet for other uses. (ex: how many times our download link has been clicked)
Friend how to do it also work on top the most visited post with this code below in your scripts ?
If I have a custom field called views and exceeds 100 views, how I can show certain message in a template?
This is perfect. Exactly what I was looking for.
You ordered the code snippet very nicely, and easy to understand. Now, I have posts view count in my blog. Thanks
Great this works perfectly!
This awesome thank a million
good to know ,3q….
tanks
Thanks for the great snippet Man. is there anyway to accumulate all the previous visits to my every single post with the current post view count?
Is it possible to reset this counter? So lets say I want to display my most “popular posts of the week”. Every week the post views resets to 0.