如何获得前10名用户是基于用户元价值

时间:2015-10-27 作者:Anvy

我正试图根据用户元价值在我的wordpress博客中获得前10名用户。

我尝试了几种方法&;最终能够使用下面的wpdb查询获得排名前一位的用户。但我们不知道如何才能获得前十名用户。

$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;
是的$wpdb 是否符合此目的?或者有没有其他解决方案可以做到这一点?使用WP_User_Query?

我试过用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,
    )
);
在这之后我不能完成这件事。。我们怎样才能做到这一点?

2 个回复
SO网友:Nicolai Grossherr

通过使用get_users() 我的意思大致如下:

$args = array(
  \'meta_query\' => array(
      array(
          \'key\'     => \'todayuserclicks\',
          \'compare\' => \'EXISTS\'
      )
   ),
  \'orderby\'    => \'meta_value_num\',
  \'order\'      => \'DESC\',
  \'number\'     => \'10\',
  \'fields\'     => \'all_with_meta\', // does NOT return meta, see below note
);
$todayuserclicks_top_10 = get_users( $args );
注:

即使使用参数fields 设置为all_with_meta 结果中不包含post meta值。的文档WP_User_Query - Return Fields Parameter 它说:

“all\\u with\\u meta”当前返回与“all”相同的字段,其中不包括存储在wp\\u usermeta中的用户字段。您必须创建第二个查询来按ID获取用户元字段,或者使用\\uu get PHP magic方法来获取这些字段的值。

SO网友:Bruno Cantuaria

我想您可以使用get\\u用户,例如:

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

相关推荐

如何同时使用wpdb导出和导入?

当我使用WP-CLI 我对wp db export和wp db import命令有一些问题。我的桌面上有一个本地站点,我想迁移到我的笔记本电脑上,这样我就可以使用它了。因此,我在桌面上,导航到适当的目录并键入wp db export. 成功创建文件:ccv3-2018-07-12-4e523fb.sql这是我不明白的部分。我将它在桌面上创建的SQL文件复制粘贴到本地网站所在的笔记本电脑目录。I类型wp db import ccv3-2018-07-12-4e523fb.sql --authors=skip