역할별로 사용자 목록을 얻으려면 어떻게해야합니까?


10

역할 또는 기능별로 WordPress에있는 모든 사용자 목록을 얻으려면 어떻게해야합니까?

예를 들면 다음과 같습니다.

  • all subscribers list워드 프레스에 표시합니다 .
  • all authors list워드 프레스에 표시합니다 .
  • all editors list워드 프레스에 표시합니다 .

답변:


18

다른 방법이있을 수 있지만 가장 적절한 방법은 다음과 같습니다.

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

다음은 역할 그룹화에 대한 간단한 접근 방식입니다.

$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

Ultimate Member Plugin Roles가있는 사용자를 찾으면 역할 값에 "um_"을 추가해야합니다. 예를 들어 Ultimate Membership Plugin에서 "Client"역할 이름을 만든 경우 $ args는

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

0

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'); ?>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.