Почему я не могу обновить имя пользователя через API Wordpress?


Мне просто интересно узнать имена пользователей... Почему это невозможно изменить с помощью API Wordpress? (Я понимаю, почему пользователь на панели администратора не может изменить имя пользователя (имена), но это не совсем одно и то же!?)

Приведенный ниже код просто игнорирует параметр 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 ) ;

Я мог бы обновить имя пользователя в базе данных напрямую через $wpdb. Для меня это не имеет никакого смысла. Может кто-нибудь объяснить?

Author: bestprogrammerintheworld, 2014-02-20

2 answers

Просматривая Trac, я нашел билет, в котором обсуждается именно эта проблема: Администратор должен иметь возможность изменять имена пользователей

Вот к чему все это сводится:

Изменение имен пользователей может привести к нарушению постоянных ссылок

Чтобы предотвратить это, потребуется сделать гораздо больше, чем просто изменить имя пользователя в БД. Например, перенаправление со старых имен пользователей.

Проблемы с кэшированием

Я цитирую из вышеупомянутого Билета:

"Одна проблема, которую вы могли бы получите, если вы делаете это с помощью базы данных при использовании memcached, остается ли старое значение в хранилище до тех пор, пока не закончится память вон".

Дени-де-Бернарди

TL;ДР

Это может вызвать различные проблемы, и поэтому это намеренно сложно сделать. В случае, если вы думаете об этом по-другому, вы можете присоединиться к обсуждению в соответствующем билете .

 4
Author: kraftner, 2014-02-20 12:21:33

На странице кодекса функций wp_udate_user есть примечание: 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 считают, что это не очень хорошая практика. На самом деле нет никаких других объяснений этому, кроме того, которое указано в Примечании.

 2
Author: Ovidiu Iacomi, 2014-02-20 12:47:57