get_editable_user_ids

The timeline below displays how wordpress function get_editable_user_ids has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

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

WordPress Version: 4.9

/**
 * 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);
}

WordPress Version: 4.6

/**
 * Gets the IDs of any users who can edit posts.
 *
 * @deprecated 3.1.0 Use get_users()
 *
 * @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);
}

WordPress Version: 4.5

/**
 * Gets the IDs of any users who can edit posts.
 *
 * @deprecated 3.1.0 Use get_users()
 *
 * @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', '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);
}

WordPress Version: 4.4

/**
 * Gets the IDs of any users who can edit posts.
 *
 * @deprecated 3.1.0 Use get_users()
 *
 * @param int $user_id User ID.
 * @param bool $exclude_zeros Optional, default is true. Whether to exclude zeros.
 * @return mixed
 */
function get_editable_user_ids($user_id, $exclude_zeros = true, $post_type = 'post')
{
    _deprecated_function(__FUNCTION__, '3.1', '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);
}

WordPress Version: 4.1

/**
 * @deprecated 3.1.0
 *
 * @param int $user_id User ID.
 * @param bool $exclude_zeros Optional, default is true. Whether to exclude zeros.
 * @return mixed
 */
function get_editable_user_ids($user_id, $exclude_zeros = true, $post_type = 'post')
{
    _deprecated_function(__FUNCTION__, '3.1', '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);
}

WordPress Version: 3.7

/**
 * @deprecated 3.1.0
 *
 * @param int $user_id User ID.
 * @param bool $exclude_zeros Optional, default is true. Whether to exclude zeros.
 * @return unknown
 */
function get_editable_user_ids($user_id, $exclude_zeros = true, $post_type = 'post')
{
    _deprecated_function(__FUNCTION__, '3.1', '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);
}