WordPress Version: 5.4
/**
* Gets the IDs of any users who can edit posts.
*
* @deprecated 3.1.0 Use get_users()
*
* @global wpdb $wpdb WordPress database abstraction object.
*
* @param int $user_id User ID.
* @param bool $exclude_zeros Optional. Whether to exclude zeroes. Default true.
* @return array Array of editable user IDs, empty array otherwise.
*/
function get_editable_user_ids($user_id, $exclude_zeros = true, $post_type = 'post')
{
_deprecated_function(__FUNCTION__, '3.1.0', 'get_users()');
global $wpdb;
if (!$user = get_userdata($user_id)) {
return array();
}
$post_type_obj = get_post_type_object($post_type);
if (!$user->has_cap($post_type_obj->cap->edit_others_posts)) {
if ($user->has_cap($post_type_obj->cap->edit_posts) || !$exclude_zeros) {
return array($user->ID);
} else {
return array();
}
}
if (!is_multisite()) {
$level_key = $wpdb->get_blog_prefix() . 'user_level';
} else {
$level_key = $wpdb->get_blog_prefix() . 'capabilities';
}
// WPMU site admins don't have user_levels.
$query = $wpdb->prepare("SELECT user_id FROM {$wpdb->usermeta} WHERE meta_key = %s", $level_key);
if ($exclude_zeros) {
$query .= " AND meta_value != '0'";
}
return $wpdb->get_col($query);
}