WordPress – How to Display Most Popular Posts by Views

Displays the most viewed posts at the sidebar are very helpful for visitors to find out the most popular post of your site. This tutorial will show you the simple way to display the most popular posts by views without using any plugin. You can get the most popular posts using simple WordPress most viewed posts query.

wordpress-how-to-display-most-popular-posts-by-views-by-codexworld

We’ll use the post Meta for storing the post views count. Using the stored Meta value, we’ll fetch the posts according to the views count. You need to modify only two files functions.php and single.php. After that, you can display the most popular posts using simple posts query.

functions.php File

Open the functions.php file of the activated theme and add the following code.

setPostViews() function add or update the post meta with post_views_count meta key.

/*
 * Set post views count using post meta
 */
function setPostViews($postID) {
    
$countKey 'post_views_count';
    
$count get_post_meta($postID$countKeytrue);
    if(
$count==''){
        
$count 0;
        
delete_post_meta($postID$countKey);
        
add_post_meta($postID$countKey'0');
    }else{
        
$count++;
        
update_post_meta($postID$countKey$count);
    }
}

single.php File

Open the single.php file from activated theme directory and place the setPostViews() function inside the loop.

setPostViews(get_the_ID());

Display the Most Viewed Posts

The following query will fetch the posts based on the post_views_count meta key value. Place the following code in the sidebar or where you want to display the most popular posts list.

<?php
query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC');
if (
have_posts()) : while (have_posts()) : the_post();
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php
endwhile; endif;
wp_reset_query();
?>
most-popular-posts-list-by-codexworld

Do you want to get implementation help, or enhance the functionality of this script? Click here to Submit Service Request

5 Comments

  1. Patricija Said...
  2. Ajay Raj Said...
  3. Khaled Ahmed Said...
  4. Hindisong.cc Said...
  5. Thu Thuat Said...

Leave a reply

keyboard_double_arrow_up