This tutorial video will show you how you can easily sort posts by most popular (most viewed) in Oxygen Builder. Using a few custom code snippets, we can easy add a meta key field that the Repeater element uses to sort posts. This is great for local directory or real estate sites where you might want to give a sense of urgency to how many times a page or post has been viewed.
Add the below code as 2 snippets using the Code Snippets WordPress plugin.
Posts views count function:
function permaslug_set_post_views($postID) {
// Define meta field
$post_count = 'permaslug_post_views_count';
// Get meta field
$count = get_post_meta($postID, $post_count, true);
// If the count is empty
if($count == '') {
// Set the count to 0
$count = 0;
delete_post_meta($postID, $post_count);
add_post_meta($postID, $post_count, '0');
} else {
// Increment the count by one
$count++;
update_post_meta($postID, $post_count, $count);
}
}
//To keep the count accurate, remove prefetching
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
Count single posts:
function permaslug_track_post_views ($post_id) {
// Only run for single posts
if ( !is_single() ) return;
// Set the post ID
if ( empty ( $post_id) ) {
global $post;
$post_id = $post->ID;
}
// Run the permaslug_set_post_views function
permaslug_set_post_views($post_id);
}
add_action( 'wp_head', 'permaslug_track_post_views');
Query used in Repeater:
https://raw.githubusercontent.com/permaslug/Order-by-popular-query/main/manual%20query
Learn more about my Oxygen Builder course here: https://jonathanjernigan.com/ultimate-oxygen-course/
Visit the premium forums: https://jonathanjernigan.com/forums/
