10

I know the former allows additional parameters, so you can more user info, but other then that, why do both exist?

The specific reason I want to know is that wp_insert_user() is happening REALLY slowly. Somewhere between 5 - 10 seconds. I don't remember having this problem in the past, when I was using create_user, so I'm wondering if there's a lot more happening behind the scenes with one as opposed to the other.

Thanks.

2 Answers 2

12

None. The whole source of wp_create_user() is:

function wp_create_user($username, $password, $email = '') {
    $user_login = esc_sql( $username );
    $user_email = esc_sql( $email    );
    $user_pass = $password;

    $userdata = compact('user_login', 'user_email', 'user_pass');
    return wp_insert_user($userdata);
}

It just calls insert version almost immediately, basically a shorthand wrapper. As for why it exists - core works in mysterious ways and (short of hunting down developer by version control history and asking) there is rarely way to tell. :)

1
  • 4
    Incorrect. It's NOT a direct alias. wp_create_user accepts three parameters, wp_insert_user accepts and array of data allowing you to set things like name, nicename, role, etc. Commented May 18, 2018 at 9:33
13

As per Codex

The wp_create_user function allows you to insert a new user into the WordPress database. It uses the $wpdb class to escape the variable values, preparing it for insertion into the database. Then the PHP compact() function is used to create an array with these values. To create a user with additional parameters, use wp_insert_user().

So the main difference would be that with wp_insert_user you may pass more than just ($username, $password, $email). A full list of all the additional parameters for wp_insert_user can be found on its Codex page

1
  • 2
    This is the correct answer. Commented May 18, 2018 at 9:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.