为什么我不能通过WordPress API更新用户名?

时间:2014-02-20 作者:bestprogrammerintheworld

我只是想知道用户名。。。为什么不能通过Wordpress API来改变这一点?(我理解为什么管理仪表板中的用户不能更改用户名,但这其实不是一回事!)

下面的代码只会忽略user\\u登录设置。

$pupil_obj= get_post($postid_pupil);

$user_login = $pupil_obj->post_name;
$user_nicename = $pupil_obj->post_name;

$user_args = array(
    \'ID\'            =>  $current_user->ID,
    \'user_email\'    =>  $email,
    \'user_login\'    =>  $user_login,
    \'user_nicename\' =>  $user_nicename                    
);                
wp_update_user( $user_args ) ;
我可以直接通过$wpdb. 这对我来说毫无意义。有人能解释一下吗?

2 个回复
最合适的回答,由SO网友:kraftner 整理而成

查看Trac,我发现一张罚单正好讨论了这个问题:Administrator should be able to change usernames

这一切归结起来就是:

更改用户名可能会破坏永久链接(permalinks),要防止这种情况发生,需要做的不仅仅是更改数据库中的用户名。E、 g.从旧用户名重定向。

缓存问题

我引用了前面提到的问题:

“如果在使用memcached时使用db进行此操作,可能会遇到一个问题,即旧值会一直保留在存储中,直到内存耗尽。”

Denis-de-Bernardy

TL;DR可能会导致各种问题,因此故意很难做到。如果您对此有不同的想法,请随时加入corresponding ticket.

SO网友:Ovidiu Iacomi

wp\\U udate\\U用户功能法典页上有一条注释:http://codex.wordpress.org/Function_Reference/wp_update_user. 也就是说:

Please note that we cannot change the usernames through this function, in fact the usernames cannot be changed from the admin dashboard as well since WordPress does not allow the usernames to be updated.
因此,您不能使用wordpress内置函数更改用户名,因为wordpress开发人员认为这不是一个好的做法。除了注释中列出的解释之外,真的没有其他解释。

结束