Php 向wp_insert_用户注册后无法登录

Php 向wp_insert_用户注册后无法登录,php,wordpress,Php,Wordpress,我做了一个登记表,但在登记后,我无法登录到新创建的帐户。Wordpress说此电子邮件的密码错误,我做错了什么 代码如下: $userdata = array( 'user_pass' => $password, 'user_nicename' => $company_clean, 'user_email' => $email, 'user_login' => $c

我做了一个登记表,但在登记后,我无法登录到新创建的帐户。Wordpress说此电子邮件的密码错误,我做错了什么

代码如下:

$userdata = array(
    'user_pass'            => $password,
    'user_nicename'        => $company_clean,
    'user_email'           => $email,
    'user_login'           => $company_clean,
    'display_name'         => $company_clean,
    'nickname'             => $company_clean,
    'first_name'           => $name,
    'last_name'            => $last_name,
    'rich_editing'         => false,
    'syntax_highlighting'  => false,
    'comment_shortcuts'    => false,
    'user_registered'      => date('Y-m-d H:i:s'),
    'show_admin_bar_front' => false,
    'role'                 => 'customer',
);

$user_id = wp_insert_user( wp_slash($userdata) );
    
add_user_meta($user_id, 'company', $company, false);
add_user_meta($user_id, 'primary', '1', false);
add_user_meta($user_id, 'miles', 0, false);
add_user_meta($user_id, 'phone', $phone, false);

if(!term_exists($company, 'customers')){
    wp_insert_term(
        $company,
        'customers'
    );
}

wp_redirect(get_home_url() . '/login');

我已经尝试过使用和不使用
wp_slash()
,但结果是一样的。

解决了问题,在注册新用户之前,我用
md5()
对密码进行了加密,然后我用它来注册它

wp\u insert\u user()
自行加密,因此它是一个双重加密的密码,因此wp无法将输入的值与数据库中存储的杂乱值匹配


无论如何,在网上搜索时,我发现最好使用
wp\u hash\u password()
而不是
md5()

在用户注册后是否希望自动登录?不,我只希望用户输入电子邮件和密码,就像您在/wp admin中那样登录。您完全相同的代码适用于我,我可以登录。我添加了
die($user\u id)在重定向之前,并获得id。用户是否已添加到wordpress?是的,它已添加到db-->-->中。只是尝试重置密码,重置后我可以毫无问题地登录,因此密码加密有问题,尝试了解问题所在。