Display (custom) post number of views

This is a repurposed post from another question which the OP did not find useful, so I’m reposting it here and hopefully will be useful here

Please modify the code as needed.

Here is a post I have recently done on stackoverflow. It is a modified version of the code you are using. I had the same problem with that code.

This is the code that I use to display post views in my website. Please note, admin views aren’t counted, and if someone goes to the same post within 12 hours, the second view aren’t counted. A second view count is only registered if that person visits the page again after 12 hours. So this is a much more accurate way of counting post views

if ( ! function_exists( 'pietergoosen_get_post_views' ) ) :

function pietergoosen_get_post_views($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;
   }
   return $count;
}

endif;

// function to count views.
if ( ! function_exists( 'pietergoosen_update_post_views' ) ) :

    function pietergoosen_update_post_views($postID) {
       if( !current_user_can('administrator') ) {
         $user_ip = $_SERVER['REMOTE_ADDR']; //retrieve the current IP address of the visitor
         $key = $user_ip . 'x' . $postID; //combine post ID & IP to form unique key
         $value = array($user_ip, $postID); // store post ID & IP as separate values (see note)
         $visited = get_transient($key); //get transient and store in variable

         //check to see if the Post ID/IP ($key) address is currently stored as a transient
         if ( false === ( $visited ) ) {

            //store the unique key, Post ID & IP address for 12 hours if it does not exist
            set_transient( $key, $value, 60*60*12 );

           // now run post views function
           $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);
           }
         }
       }
    }

endif;

remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);

You can now just simply add the following code where you need to display the count

<div class="readercount">
   <?php $views = pietergoosen_get_post_views(get_the_ID());
       if(pietergoosen_get_post_views(get_the_ID()) == 1) {  
          printf( __( '%d Reader have read this post.', 'pietergoosen' ) , $views );
       } else {  
          printf( __( '%d Readers have read this post.', 'pietergoosen' ) , $views );  
       }  
   ?>
</div>

and add the following code in single.php to register the count

pietergoosen_update_post_views(get_the_ID());