如何从登录的用户角色中检索所有用户?——Wordpress



我正在尝试从活动用户角色检索所有用户。我已经成功获取了所有的用户,但是我只想从当前登录的用户角色中获取用户。

在函数中使用以下代码来检索所有用户:

// Get users by role
function userLooping( $role ) {
$user_query = new WP_User_Query( array( 'role' => $role ) );
// UserLoop
if ( ! empty( $user_query->results ) ) :
echo '<div id="divuser">';
foreach ( $user_query->results as $user ) :
echo '<option value="zo">';
echo $user->display_name; // display user name
echo '</option>';
endforeach;
echo '</div>';
endif;
}
add_shortcode( 'users_role', 'userLooping' );

注意:我只添加了<options>,因为我将结果导入到下拉菜单中。

有什么建议吗?

下面的代码为我工作。注意事项:

  • 你应该检查用户是否登录到WordPress(在下面的代码片段中添加)
  • 除非您有很好的理由将其分开,否则在短代码函数(在下面的代码片段中添加)中获取当前用户的角色是有意义的
  • 一个WordPress用户可以有多个角色,所以这里使用role__in检查一个角色数组。
  • <option>元素需要嵌套在selectoutgroupdatalist元素

function userLooping() {

if ( is_user_logged_in() ) {
$user = wp_get_current_user();
$roles = $user->roles;
$user_query = new WP_User_Query( [ 'role__in' => $roles ] );

$users = [];
if ( !empty ( $user_query->results ) ) {
$users = '<select id="divuser">';
foreach ( $user_query->results as $user ):
$users .= "<option value='$user->user_login'>";
$users .= $user->display_name; // display user name
$users .= '</option>';
endforeach;
$users .= '</select>';
}
return $users;
}
}
add_shortcode( 'users_role', 'userLooping' );

最新更新