私のワードプレスのモックアップには、ref_credit と呼ばれるユーザー用の meta_value があります。このサンドロのメタ値は次のようになります。
174 1 ref_credit a:2:{i:0;s:1:"9";i:1;s:2:"10";}
彼が id=9,10 のユーザーを紹介したことを意味します
別のユーザーの meta_value は次のようになります。
209 9 ref_credit a:1:{i:0;s:2:"11";}
彼は id=11 のユーザーを 1 人だけ紹介しました。
今、私は単純なリーダーボードを作成したいと思います.何かをモックアップしましたが、ロジックは完全に間違っています. これにより、コードが値と順序を比較することを理解しています。紹介されたユーザー数で並べたいです。
何か案は?
完全な機能は次のとおりです。
//get_users calls WP_User_Query and returns an array of matching users
$users = get_users(
array( 'fields' => 'all_with_meta',
'meta_query' => array( array( 'key' => 'ref_credit', // the meta field (or key) we want to target
'compare' => '>=' // comparison method (optional: =, >, <, etc)
)))
);
//custom function for comparing the data we want to sort by
function cmp($a, $b){
if ($a->points == $b->points) {
return 0;
}
return ($a->points > $b->points) ? -1 : 1;
}
//usort sorts our $users array with our function cmp()
usort($users, 'cmp');
//leaving an array of $users sorted by the value of meta 'points'
echo '<ol>';
foreach ($users as $user) {
echo '<li>' . $user->display_name . '</li>';
}
echo '</ol>';