В чем разница между wp_insert_user() и wp_create_user()

28 сент. 2012 г., 18:31:09
Просмотры: 18.1K
Голосов: 11

Я знаю, что первая функция позволяет передавать дополнительные параметры, чтобы задать больше информации о пользователе, но помимо этого, зачем нужны обе?

Конкретная причина, по которой я хочу узнать это — wp_insert_user() выполняется ОЧЕНЬ медленно. Где-то от 5 до 10 секунд. Я не помню, чтобы у меня была такая проблема в прошлом, когда я использовал create_user, поэтому мне интересно, не выполняется ли в одной из них гораздо больше действий "за кулисами".

Спасибо.

0
Все ответы на вопрос 2
1
13

Согласно Codex

Функция wp_create_user позволяет добавить нового пользователя в базу данных WordPress. Она использует класс $wpdb для экранирования значений переменных, подготавливая их для вставки в базу данных. Затем функция PHP compact() используется для создания массива с этими значениями. Для создания пользователя с дополнительными параметрами используйте wp_insert_user().

Таким образом, основное различие заключается в том, что с помощью wp_insert_user вы можете передать больше параметров, чем просто ($username, $password, $email). Полный список всех дополнительных параметров для wp_insert_user можно найти на странице Codex.

24 апр. 2016 г. 09:05:42
Комментарии

Это правильный ответ.

Armstrongest Armstrongest
18 мая 2018 г. 12:33:39
1
12

Нет. Весь исходный код функции wp_create_user() выглядит так:

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

Она просто почти сразу вызывает версию с insert, по сути являясь сокращённой обёрткой. Что касается причины её существования — ядро работает загадочными путями, и (если не искать разработчика через историю версий и не спрашивать его напрямую) редко можно точно сказать, зачем. :)

28 сент. 2012 г. 18:36:21
Комментарии

Неверно. Это НЕ прямой аналог. wp_create_user принимает три параметра, тогда как wp_insert_user принимает массив данных, что позволяет задавать такие параметры, как имя, никнейм, роль и другие.

Armstrongest Armstrongest
18 мая 2018 г. 12:33:24