Мне нужно вставить пользователей в блог WordPress через PHP-скрипт или MySQL, и у меня есть простой текстовый пароль. Я думал, что смогу сделать что-то вроде этого:
$query = "INSERT INTO $new_db.wp_users (user_login, user_pass, user_nicename) select user_email, md5(user_password), user_name from $source_db.users";
Но пароли выглядят иначе, чем сейчас выглядят пароли WordPress. Все пароли начинаются с $P$B
От чтения он говорит, что есть соль … есть ли способ взять пароль, например test123, и превратить его в зашифрованный пароль, который WordPress ожидает?
Наиболее разумным решением было бы просто использовать соответствующую функцию WordPress ( wp_generate_password ).
Однако, если это не вариант, вы можете просто извлечь функцию wp_generate_password
(она находится в /wp-includes/pluggable.php) и соответствующие вспомогательные функции.
WordPress использует хэширование phpass , которое отличается от MD5.
Самый простой способ создать пароль – это …
Не забудьте скопировать «wp_capabilities» и «wp_user_level» из другой учетной записи.
Эта функция будет делать то, что вы описали, чтобы преобразовать пароль:
<? function encrypt_for_wordpress($plain_text_password) { return md5("\$P\$B" . $plain_text_password); }
Вам нужно будет выбрать его из source_db
, преобразовать его в PHP, а затем вставить в new_db
.