虽然您可能必须为用户分配新密码,但应该相当容易。只要用户知道即将到来,这通常可以。
把你的旧数据库和一个简单的SQL查询来提取数据,然后使用一些类似于下面的代码在你的旧数据库中为每个用户创建一个新用户:
$newuser = array(
'user_pass' => wp_generate_password(12,0),
'user_login' => $email,
'user_nicename' => $name['first'].' '.$name['last'],
'user_email' => $email,
'display_name' => $name['first'].' '.$name['last'],
'nickname' => $name['first'].' '.$name['last'],
'first_name' => $name['first'],
'last_name' => $name['last'],
//''
);
$user_id = wp_insert_user($newuser);
wp_new_user_notification($user_id, $newuser['user_pass']);
此代码工作的WordPress 3.1。在这个例子中,你只需要用你从旧数据库提供的数据替换$ name变量。
最后两行很重要,因为那是真正的工作发生的地方。 wp_insert_user函数将创建用户(或者如果您缺少信息则抛出错误),并且wp_new_user_notification函数将向他们发送包含其密码的电子邮件。我强烈建议花时间重写新的用户通知插件(这是一个pluggable function,这样你就可以将它粘贴到你的functions.php并在那里进行更改),这样电子邮件用户才有意义。您也可以编写自己的电子邮件功能,或者如果您的密码以纯文本形式存储,只需将该信息传递给WP。
编辑:我错过了你的自定义字段需要,重力形式做到这一点非常好,但你可以自定义字段与update_user_meta功能添加到任何用户。所以在上面的示例代码你只是想后,像添加的东西:
update_user_meta($user_id, "my_custom_data_key", "my_custom_data_value");
要检索显示的数据,你只需要使用get_user_meta:
print get_user_meta($user_id, "my_custom_data_key");
为什么不加注册Redux为你的目的工作? – Ciaran 2011-04-11 15:17:09