This is a pretty old question, but is still relevant.
Anyway, @Milo definitely had the right idea.
Here is what I use and it works great. This is very convenient when you want to create users, but prefer to keep your wordpress backend on lockdown. For example if you have a blog and prefer your content authors submit their work to you, this enables you create a user for them while not actually giving them access. Or if you prefer to blog under an alias. Or it's even useful for testing purposes or I guess those "sketchy" people who want to make up a bunch of fake users for their site (you know who you are).
Add this to functions.php temporarily or use it with a useful plugin like code snippets.
function wpse_22754_insert_new_user() {
$user_data = array(
'ID' => '', // automatically created
'user_pass' => 'swordfish',
'user_login' => 'someuser',
'user_nicename' => 'Some User',
'user_email' => '',
'display_name' => 'John',
'nickname' => 'jsmith',
'first_name' => 'John',
'last_name' => 'John',
'user_url' => '',
'user_registered' => '2015-06-26 10:55:55', // leave empty for auto
'role' => get_option('default_role') // administrator, editor, subscriber, author, etc
);
$user_id = wp_insert_user( $user_data );
}
add_action( 'admin_init', 'wpse_22754_insert_new_user' );
If you are looking to update users from the backend after creating them, add this and you'll avoid getting the error/warning notification.
function wpse_22754_empty_email_error( $arg ) {
if ( !empty( $arg->errors['empty_email'] ) ) unset( $arg->errors['empty_email'] );
}
add_action( 'user_profile_update_errors', 'wpse_22754_empty_email_error' );
If you'd rather use a plugin this one will do the job most likely:
https://wordpress.org/plugins/allow-multiple-accounts/