如何以编程方式更改用户密码


17

我试图创建一个完全不同的配置文件页面(而不是Wordpress提供的页面),因为默认配置文件页面的布局和使用感觉对于用户来说太“ Wordpress”了。现在,我能够成功呈现一个页面,该页面可以修改用户元数据,例如名字,姓氏,城市,邮政编码等。

现在让我感到困扰的是更改用户密码。是否有内置的wordpress函数,例如change_user_password($ user_id,$ new_password)?我很惊讶我找不到能做到这一点的东西。

更糟糕的是,我正在执行UPDATE wp_users SET user_pass = md5($new_password) WHERE ID = $user_id,但是如果没有此功能,我会感到非常惊讶。


1
md5WordPress中的密码已弃用(但仍向后兼容-下次用户登录密码将被重新哈希并重新保存)。最好通过API,以便使用当前和更复杂的哈希方案。
拉斯特

是的,我也是我的猜测。数据库中存储的密码与输入密码不匹配MD5。是的,它确实已经修复。
Ardee Aram

Answers:


23
wp_set_password( $password, $user_id );

有关详细信息,请参见参考


1
我之所以投票赞成,是因为这会导致单个sql查询。很好,如果要输入密码,则要更新。wp_update_user导致运行约14个查询。
约翰

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.