雖然您可能必須爲用戶分配新密碼,但應該相當容易。只要用戶知道即將到來,這通常可以。
把你的舊數據庫和一個簡單的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