如何按用户姓氏的字母顺序对用户进行排序?

时间:2013-09-04 作者:Iurie

我使用以下短代码和功能来显示一些部门的成员:

add_shortcode( \'list_of_members\', \'members_listing\' );
/* usage: [list_of_members department = \'psychology\'] */

function members_listing( $department ) {

    $members = get_users( array( \'meta_key\' => \'department\', \'meta_value\' => $department ) ); 

    echo \'<ul>\';
    foreach ( $members as $member ) {
        echo \'<li>\' . $member->first_name . \' \' . $member->last_name . \'</li>\';
    }
    echo \'</ul>\';
}
我想按字母顺序排列用户last_name. 我该怎么做?

我受到了这个启发question/answer, 但我并不完全理解。

3 个回复
最合适的回答,由SO网友:tfrommen 整理而成

为什么不使用PHP的内置功能?

将以下行放在foreach:

usort($members, create_function(\'$a, $b\', \'return strnatcasecmp($a->last_name, $b->last_name);\'));

References:

SO网友:ytl

在get\\u users参数中添加orderby=>last\\u name,order=>DESC。希望这对你有帮助。

$members = get_users( array( \'meta_key\' => \'department\', \'meta_value\' => $department, \'orderby\' => \'last_name\', \'order\' => \'DESC\' ) ); 

SO网友:Manish

我修改了你的函数:

add_shortcode( \'list_of_members\', \'members_listing\' );
/* usage: [list_of_members department = \'psychology\'] */

function members_listing( $department ) {

   $members = get_users( array( \'meta_key\' => \'department\', \'meta_value\' => $department, \'orderby\' => \'last_name\', \'order\' => \'DESC\' ) ); 

   echo \'<ul>\';
   foreach ( $members as $member ) {
      echo \'<li>\' . $member->first_name . \' \' . $member->last_name . \'</li>\';
   }
   echo \'</ul>\';
}
刚刚又添加了两个参数两个参数

结束

相关推荐

Ordering Subcategories

我使用以下代码显示子类别中的数据。子类别为“英国”、“仅英格兰”、“仅北爱尔兰”、“仅苏格兰”、“仅威尔士”。按日期或asc/desc排序,英国子类别位于中间位置,威尔士或英格兰位于顶部。我需要英国子类别位于顶部。它拥有最多的帖子-那么可以在查询中使用orderby来解决这个问题吗?或者你认为我只需要为UK子类别创建自己的循环吗?$parentCatID = get_cat_ID(\'Grants and Incentives\'); $childCats = get_categories( \'