如何按角色获取用户列表?

时间:2016-03-04 作者:Raja Usman Mehmood

如何按角色或功能获取WordPress中所有用户的列表?

例如:

显示器all subscribers list 在WordPress中all authors list 在WordPress中all editors list 在WordPress中

4 个回复
最合适的回答,由SO网友:Raja Usman Mehmood 整理而成

可能有一些不同的方法可以做到这一点,但最正确的方法是遵循以下步骤。

<?php

$args = array(
    \'role\'    => \'Your desired role goes here.\',
    \'orderby\' => \'user_nicename\',
    \'order\'   => \'ASC\'
);
$users = get_users( $args );

echo \'<ul>\';
foreach ( $users as $user ) {
    echo \'<li>\' . esc_html( $user->display_name ) . \'[\' . esc_html( $user->user_email ) . \']</li>\';
}
echo \'</ul>\';

?>

SO网友:Jevuska

这里是对角色进行分组的简单方法。

$wp_roles = wp_roles();
$result   = count_users();

foreach ( $result[\'avail_roles\'] as $role => $count )
{
    if ( 0 == $count )
        continue; //pass role none

    $args = array(
        \'role\' => $role
    );

    $users = get_users( $args );
    $user  = array();
    for ( $i = 0; $i < $count ; $i++ )
        $user[] = esc_html( $users[ $i ]->display_name ); //show display name

    //output
    echo wp_sprintf( \'<h2>%1$s</h2><ul><li>%2$s</li></ul>\',
        esc_html( $wp_roles->role_names[ $role ] ),
        implode( \'</li><li>\', $user )
    );
}

SO网友:CristianR

当您找到具有最终成员插件角色的用户时,您必须在角色值中添加“um\\u0”。例如,您在Ultimate Membership插件中创建了角色名“Client”,那么$args将是

$args = array(
    \'role\'    => \'um_client\',
    \'orderby\' => \'user_nicename\',
    \'order\'   => \'ASC\'
);

SO网友:Wikus

扩展Raja的答案,您还可以编写一个助手函数来为您处理此问题:

<?php
# This goes in functions.php
function get_users_by_role($role, $orderby, $order) {
    $args = array(
        \'role\'    => $role,
        \'orderby\' => $orderby,
        \'order\'   => $order
    );

    $users = get_users( $args );

    return $users;
}
?>
然后,要通过特定角色获取用户,您只需执行以下操作:

<?php $users = get_users_by_role(\'Your role\', \'user_nicename\', \'ASC\'); ?>

相关推荐

未定义的偏移量:1067行的>[...]/wp-includes/capabilities.php中的0

嘿,我在我的localhost设置中得到了这个错误消息,但只有在启用Genesis框架的情况下;WordPress二十一行。当我想创建一个新帖子时,就会发生这种情况。如果我刷新页面,错误会重复,但帖子本身会被创建,一切似乎都很好。有人知道这是什么原因吗?Notice: Undefined offset: 0 in /var/www/secret/htdocs/wp-includes/capabilities.php on line 1067 Notice: Undefined offset: 0