I need to create most viewed post column in the template file, but based on post view count?
Function File
function wpb_get_post_views($postID){
$count_key = 'wpb_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';
}
Template File
<?php
$popularpost = new WP_Query( array( 'posts_per_page' => 4, 'meta_key' => 'wpb_post_views_count',
'orderby' => 'meta_value_num', 'order' => 'DESC' ) );
while ( $popularpost->have_posts() ) : $popularpost->the_post();
the_title();
endwhile;
?>
I need to create most viewed post column in the template file, but based on post view count?
Function File
function wpb_get_post_views($postID){
$count_key = 'wpb_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';
}
Template File
<?php
$popularpost = new WP_Query( array( 'posts_per_page' => 4, 'meta_key' => 'wpb_post_views_count',
'orderby' => 'meta_value_num', 'order' => 'DESC' ) );
while ( $popularpost->have_posts() ) : $popularpost->the_post();
the_title();
endwhile;
?>
The function getPostViews() is retrieving the total number of views for each post while setPostViews() increases the post views counter each time post is viewed. You need to call setPostViews() somewhere in your single.php and then use below code to retrieve posts on basis of posts view count.
$args = Array(
'post_type' => 'post',
'posts_per_page' => '5',
'meta_key' => 'post_views_count',
'orderby' => 'meta_value_num',
'order' => 'DESC'
);
$popular = new WP_Query( $args );
<?php while($popular->have_posts()) : $popular->the_post(); ?>
<?php the_post_thumbnail(); ?> <?php the_title(); ?> <?php the_content(); ?>
<?php endwhile ?>
wpb_post_views_count
coming from? Note that tracking view counts via post meta is extremely unreliable, suffers from race conditions leading to undercounting, and is fundamentally incompatible with fullpage caching and CDNs – Tom J Nowell ♦ Commented Aug 5, 2022 at 15:10