El nombre de usuario en WordPress está protegido por diseño, de manera que no se puede cambiar desde el panel de administración ni usando las funciones PHP para actualizar los datos de un usuario. La orden wp user update de WP-CLI tampoco permite cambiar el username. Esta protección tiene su lógica, pero hay veces que necesitamos cambiar algún username. Una manera de hacerlo es modificándolo directamente en base de datos.
Con WP-CLI podemos lanzar una query a la base de datos para cambiar el username:
wp db query "UPDATE wp_users u, ( SELECT COUNT(*) as number_of_same_login_users FROM wp_users u WHERE user_login = 'mary_new' ) tmp SET u.user_login = 'mary_new' WHERE u.user_login = 'mary_old' AND tmp.number_of_same_login_users = 0"
En una línea:
wp db query "UPDATE wp_users u, ( SELECT COUNT(*) as number_of_same_login_users FROM wp_users WHERE user_login = 'mary_new' ) tmp SET u.user_login = 'mary_new' WHERE u.user_login = 'mary_old' AND tmp.number_of_same_login_users = 0"