I’m trying to get top 10 users in my wordpress blog based on user meta value.

I’ve tried few methods & finally able to get just top one user using below wpdb query. But clueless, how we can get top 10 users.

$top10alltime = $wpdb->get_row( "SELECT MAX( CAST( meta_value AS UNSIGNED ) ) AS top_user FROM $wpdb->usermeta WHERE meta_key = 'alltimeusers'" ); 

echo $top10alltime->top_user;

Is $wpdb is right for this purpose? Or is there any other solution to get this done? using WP_User_Query?

I’ve tried something with WP_User_Query.

foreach ( $users as $var => $order ) {
$query->query(
    array(
        'count_total' => false,
        'meta_key' => 'todayuserclicks',
        'orderby' => 'meta_value',
        'fields' => 'ID',
        'number' => 10,
        'order' => $order,
    )
);

I can’t get this done after this .. how can we do this?

2 Answers
2

I guess you can do with get_users, something like:

$topusers = get_users( array (
    'meta_key'     => 'todayuserclicks',
    'meta_value'   => '',
    'meta_compare' => '!=',
    'orderby'      => 'meta_value',
    'order'        => 'DESC',
    'number'       => '10',
) );

Leave a Reply

Your email address will not be published. Required fields are marked *