Last active
January 22, 2019 15:06
-
-
Save nutsandbolts/16e74d427490ef6a7911 to your computer and use it in GitHub Desktop.
Calculate and display number of views in Genesis post meta
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//* Get post view counts | |
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 Views"; | |
} | |
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); | |
} | |
} | |
//* Prevent prefetching from adding extra views | |
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0); | |
add_action( 'genesis_loop', 'nabm_get_individual_post_count'); | |
function nabm_get_individual_post_count() { | |
if ( is_single() ) { | |
setPostViews(get_the_ID()); | |
} | |
} | |
//* Add shortcode to display counts in post meta | |
function nabm_post_views_shortcode() { | |
echo getPostViews(get_the_ID()); | |
} | |
add_shortcode( 'post_views', 'nabm_post_views_shortcode' ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@nutsandbolts
Hi
I found your code is useful for my work. I try to calculate most popular posts and pages in my plugin. But I have two questions:
why did you use delete_post_meta before adding post meta? If $count value is null, so there is no existing post meta for post_views_count, isn't it?
Why did you remove the action 'adjacent_posts_rel_link_wp_head'? please explain it.
Thanks