¿Cuál es la diferencia entre wp_insert_user() y wp_create_user()?

28 sept 2012, 18:31:09
Vistas: 18.1K
Votos: 11

Sé que el primero permite parámetros adicionales, por lo que puedes añadir más información del usuario, pero aparte de eso, ¿por qué existen ambos?

La razón específica por la que quiero saber es que wp_insert_user() está ocurriendo MUY lentamente. En algún lugar entre 5 y 10 segundos. No recuerdo haber tenido este problema en el pasado, cuando usaba create_user, así que me pregunto si hay mucho más sucediendo detrás de escenas con uno en comparación con el otro.

Gracias.

0
Todas las respuestas a la pregunta 2
1
13

Según el Codex

La función wp_create_user te permite insertar un nuevo usuario en la base de datos de WordPress. Utiliza la clase $wpdb para escapar los valores de las variables, preparándolos para su inserción en la base de datos. Luego, se usa la función compact() de PHP para crear un array con estos valores. Para crear un usuario con parámetros adicionales, usa wp_insert_user().

Así que la principal diferencia sería que con wp_insert_user puedes pasar más que solo ($nombre_de_usuario, $contraseña, $email). Una lista completa de todos los parámetros adicionales para wp_insert_user se puede encontrar en su página del Codex

24 abr 2016 09:05:42
Comentarios

Esta es la respuesta correcta.

Armstrongest Armstrongest
18 may 2018 12:33:39
1
12

Ninguna. Todo el código fuente de wp_create_user() es:

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

Simplemente llama a la versión insert casi inmediatamente, básicamente es un envoltorio abreviado. En cuanto a por qué existe - el núcleo de WordPress funciona de formas misteriosas y (a menos que rastrees al desarrollador mediante el historial de control de versiones y le preguntes) rara vez hay forma de saberlo. :)

28 sept 2012 18:36:21
Comentarios

Incorrecto. NO es un alias directo. wp_create_user acepta tres parámetros, wp_insert_user acepta un array de datos que te permite configurar cosas como nombre, nicename, rol, etc.

Armstrongest Armstrongest
18 may 2018 12:33:24