Attention Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

Referencia de Funciones/wp insert user


Inserta / Actualiza un usuario dentro de la base de datos. Para actualizar un usuario existente y enviar un email de cambio de password, usar la función wp_update_user.


<?php wp_insert_user$userdata ); ?>


(mixto) (required) Un array con datos del usuario, stdClass o un objeto WP_User.
Default: None

Valores de retorno

  • Si es exitoso, retorna el id del usuario recien creado.
  • Si la consulta falla retorna un objeto WP_Error
  • Si el user_login supera los 60 caracteres, retorna un objeto WP_Error.
  • Si el user_nicename supera los 50 caracteres, retorna un objeto WP_Error.


Lo siguiente es un ejemplo que muestra como insertar un nuevo usuario con campo website completo.


$website = "http://example.com";
$userdata = array(
    'user_login'  =>  'login_name',
    'user_url'    =>  $website,
    'user_pass'   =>  NULL  // Cuando creamos un usuario, se espera recibir un `user_pass`.

$user_id = wp_insert_user( $userdata ) ;

//Es exitoso
if ( ! is_wp_error( $user_id ) ) {
    echo "Usuario creado : ". $user_id;



  • Usos: $wpdb Capa de la base de datos de Wordpress.
  • Usos: apply_filters() Calls filters for most of the $userdata fields with the prefix 'pre_user'. See description above.
  • Uses: do_action() Calls 'profile_update' hook when updating giving the user's ID
  • Uses: do_action() Calls 'user_register' hook when creating a new user giving the user's ID
The $userdata array can contain the following fields
Field Name Description Associated Filter
ID An integer that will be used for updating an existing user. (none)
user_pass A string that contains the plain text password for the user. pre_user_pass
user_login A string that contains the user's username for logging in. pre_user_login
user_nicename A string that contains a URL-friendly name for the user. The default is the user's username. pre_user_nicename
user_url A string containing the user's URL for the user's web site. pre_user_url
user_email A string containing the user's email address. pre_user_email
display_name A string that will be shown on the site. Defaults to user's username. It is likely that you will want to change this, for both appearance and security through obscurity (that is if you dont use and delete the default admin user). pre_user_display_name
nickname The user's nickname, defaults to the user's username. pre_user_nickname
first_name The user's first name. pre_user_first_name
last_name The user's last name. pre_user_last_name
description A string containing content about the user. pre_user_description
rich_editing A string for whether to enable the rich editor or not. False if not empty. (none)
user_registered The date the user registered. Format is Y-m-d H:i:s. (none)
role A string used to set the user's role. (none)
jabber User's Jabber account. (none)
aim User's AOL IM account. (none)
yim User's Yahoo IM account. (none)
locale User's locale. (none)

If there is no ID, a new user will be created. If you pass an ID , the user with that ID will be updated, and these meta fields are updated if set in $userdata otherwise they are set to null:


When performing an update operation using wp_insert_user, user_pass should be the hashed password and not the plain text password.

Change Log

  • 4.7.0: Now accepts 'locale' as $userdata's key
  • 3.5.0: Now accepts stdClass or WP_User object
  • Since: 2.0.0

Source File

As of 3.1 wp_insert_user() is located in wp-includes/user.php.


wp_update_user, wp_create_user
Blog User Functions: add_user_to_blog(), add_new_user_to_blog(), remove_user_from_blog(), is_user_member_of_blog()

See also index of Function Reference and index of Template Tags.