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

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

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

评论

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

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

#1 楼

wp_set_password( $password, $user_id );


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

评论


我之所以投票赞成,是因为这会导致单个sql查询。好的,如果密码是,那么您想要更新的所有内容。 wp_update_user导致大约14个查询运行。

–约翰
2012年7月16日19:31

#2 楼

一个简单的wp_update_user(array('ID' => $userid, 'user_pass' => 'myNeWpaSSword'))即可为您做所有事情-wp_update_user()(Codex)。

在旁注:您知道主题“我的登录名”(Wordpress插件)吗?它可以为您提供前端配置文件页面。