How to Track and Show WordPress Post Views Without a Plugin
This simple snippet tracks and shows WordPress post views in your templates – and without the need for a plugin.
Instructions
Add this to your functions.php
file.
// function to display number of posts. 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 to 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); } } // Add it 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()); } }
Add this to your single.php
, and make sure you paste in inside the loop.
<?php setPostViews(get_the_ID()); ?>
To display the number of views a post has, just add this in your template where you want the post view count to be displayed.
<?php echo getPostViews(get_the_ID()); ?>
Related Links:
http://wpsnipp.com/index.php/functions-php/track-post-views-without-a-plugin-using-post-meta/
very nice…super working
Nice code works fine.
this works but i noticed and issue. When i shared a post on Facebook etc… many people click on the shared post. however I noticed that the view count do not change. Its only change if you click on the post on the site only. Please help. Thanks
when a post that link to external website, how do?
great ,,, it works… tnx
Not wordk with me .
Great all I need now is a simple like button counter (were users just press a icon to add to the count) does wp snippet have this?
For a “like” functionality, you could use the native Jetpack “Like” feature or if you want something like star rating (like on this site) – you could use something like the KK Star Rating plugin: https://wordpress.org/plugins/kk-star-ratings/
great works fine.
Working very well
Good article keep it up ;)
good one (Y)
Thanks a lot. The code snippet really worked like charm! It’s showing page views accordingly and very fast in updating the views too
Working !! Thanks for this post
Great work for me.