admin管理员组

文章数量:1278910

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?

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?

Share Improve this question asked Apr 17, 2012 at 18:54 RomesRomes 4554 gold badges11 silver badges20 bronze badges
Add a comment  | 

2 Answers 2

Reset to default 18

View this section of the Codex to learn how to create a custom query: http://codex.wordpress/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.

View this section of the Codex to learn how to create a custom query: http://codex.wordpress/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
) );

本文标签: How to query for most viewed posts and show top 5