web-dev-qa-db-fra.com

Pourquoi ne puis-je pas mettre à jour le nom d'utilisateur via l'API Wordpress?

Je m'interroge simplement sur les noms d'utilisateur ... Pourquoi n'est-il pas possible de changer cela via l'API Wordpress? (Je comprends pourquoi un utilisateur du tableau de bord de l'administrateur ne peut pas changer de nom d'utilisateur, mais ce n'est pas vraiment la même chose!?)

Le code ci-dessous ignore simplement le paramètre user_login.

$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 ) ;

Je pourrais mettre à jour le nom d'utilisateur directement dans la base de données via $wpdb. Cela n'a aucun sens pour moi. Quelqu'un peut-il expliquer?

4

En cherchant sur Trac, j’ai trouvé un billet qui traitait exactement de cette question: L’administrateur devrait pouvoir changer de nom d’utilisateur

C'est ce que tout se résume à:

Changer de nom d'utilisateur pourrait casser des permaliens

Pour éviter cela, il ne suffit pas de changer le nom d'utilisateur dans la base de données. Par exemple. redirection d'anciens noms d'utilisateur.

Problèmes de mise en cache

Je cite le billet susmentionné:

"Un problème que vous pourriez rencontrer, si vous utilisez la base de données en même temps que memcached, est que l'ancienne valeur reste dans le magasin jusqu'à épuisement de la mémoire."

Denis-de-Bernardy

TL; DR

Cela peut causer divers problèmes et est donc délibérément difficile à faire. Au cas où vous pensez à cela différemment, vous êtes libre de rejoindre la discussion dans le ticket correspondant .

4
kraftner

Il y a une note sur la page de codex de la fonction wp_udate_user: http://codex.wordpress.org/Function_Reference/wp_update_user . Et c'est:

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.

Vous ne pouvez donc pas modifier le nom d'utilisateur à l'aide des fonctions intégrées de wordpress, car les développeurs de Wordpress pensent que ce n'est pas une bonne pratique. Il n’ya vraiment pas d’autre explications à cela en dehors de celle énumérée dans la note.

2
Ovidiu Iacomi