php - WordPress SQL 按用户角色获取特定用户
问题描述
您好我正在尝试通过 SQL 查询从数据库中获取特定用户。还试图添加一些条件。User role name is: Student
但是我的代码无法得到正确的结果。
SELECT um.user_id, um.meta_key, um.meta_value, u.user_email
FROM wp_usermeta AS um INNER JOIN wp_users AS u ON (u.ID = um.user_id)
WHERE meta_key IN ('first_name', 'last_name','role') AND (meta_value NOT LIKE '%Student' AND u.user_email NOT LIKE '%@yourdomain.com')
解决方案
您可以使用此函数按角色获取用户数组。
# 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;
}
然后你可以像这样使用它:
$users = get_users_by_role('student', 'user_nicename', 'ASC');
或者你可以get_users()
像这样使用
$students = get_users( array( 'role__in' => array( 'student' ) ) );
或者
$students = get_users( 'role=student' );
或者user_query方式
$user_query = new WP_User_Query( array( 'role' => 'Student' ) );
如果你坚持使用 SQL,那么你可以使用
SELECT wp_users.ID, wp_users.user_nicename
FROM wp_users INNER JOIN wp_usermeta
ON wp_users.ID = wp_usermeta.user_id
WHERE wp_usermeta.meta_key = 'wp_capabilities'
AND wp_usermeta.meta_value LIKE '%student%'
ORDER BY wp_users.user_nicename
推荐阅读
- c++ - 在 C++20 中使用 bit_cast 将整数转换为 GLvoid* 是否有效?
- c# - 通过 C# 使用 WebForms 如何初始化/创建在整个应用程序中使用的变量?
- android - 如何只获得最大数量的指针
- javascript - 从初始化定位节点
- sql - 如果缺少 1 个级别,则获取超级父列表或显示父级
- python - 如何让 python 脚本再次重复 x 次?
- python - 解密大文件时 MAC 检查失败
- python - 为什么我不能让我的输出数据帧转换为 csv?AttributeError:“NoneType”对象没有属性“to_csv”
- html - 如何在圆形图像周围放置多色边框?
- excel - VBA代码根据单元格范围内的单元格值显示消息