Làm thế nào tôi có thể có được một danh sách người dùng theo vai trò của họ?


10

Làm cách nào tôi có thể nhận được danh sách tất cả người dùng trong WordPress theo vai trò hoặc khả năng của họ?

Ví dụ:

  • Hiển thị all subscribers listtrong WordPress.
  • Hiển thị all authors listtrong WordPress.
  • Hiển thị all editors listtrong WordPress.

Câu trả lời:


16

Có thể có một số cách khác nhau để làm điều đó, nhưng cách tốt nhất để làm điều đó là theo sau.

<?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>';

?>

3

Ở đây cách tiếp cận đơn giản để nhóm các vai trò.

$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 )
    );
}

2

Khi bạn tìm thấy người dùng có Vai trò Plugin Thành viên Cuối cùng, Bạn phải thêm "um_" vào giá trị vai trò của mình. Ví dụ: bạn đã tạo tên vai trò "Khách hàng" trong Plugin Thành viên cuối cùng, thì $ args sẽ là

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

0

Mở rộng câu trả lời của Raja, bạn cũng có thể viết một hàm trợ giúp xử lý việc này cho bạn:

<?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;
}
?>

Sau đó, để có được người dùng theo một vai trò cụ thể, bạn chỉ cần làm:

<?php $users = get_users_by_role('Your role', 'user_nicename', 'ASC'); ?>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.