5

Here is how I am getting the views for one post:

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 View";
        }
        return $count.' Views';
    }

Let's say I want to find the most viewed posts from 5,000 posts and I want to show the top 5 most viewed posts.

How can I make a query to achieve this?

10

View this section of the Codex to learn how to create a custom query: http://codex.wordpress.org/Class_Reference/WP_Query

Your query will be something like:

$query = new WP_Query( array(
    'meta_key' => 'post_views_count',
    'orderby' => 'meta_value_num',
    'posts_per_page' => 5
) );

By default, the ordering will be highest to lowest, thus giving you the "top" 5.

  • 4
    How about the function to generate post views count? Where does that come from? – Brad Dalton Jun 3 '14 at 8:31
1

View this section of the Codex to learn how to create a custom query: http://codex.wordpress.org/Class_Reference/WP_Query

this code will work

$query = new WP_Query( array(
    'meta_key' => 'post_views_count',
    'orderby' => 'meta_value_num',
    'posts_per_page' => 5
) );

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.