ฉันแน่ใจว่าwp_update_userฟังก์ชันควรทำเช่นนี้ ( http://codex.wordpress.org/Function_Reference/wp_update_user )
มันยังทำให้ user_login เป็นพารามิเตอร์ แต่ดูเหมือนว่ามันจะไม่สนใจเมื่อคุณตั้งค่าพารามิเตอร์นี้
ดังนั้นรหัสนี้จึงดูดี แต่มันไม่ทำงานอย่างที่คุณต้องการ :(:
wp_update_user( array ( 'ID' => $user_id, 'user_login' => $new_login ) ) ;
คุณต้องโทรแบบสอบถาม SQL แบบกำหนดเองเพื่ออัปเดต user_login:
$wpdb->update($wpdb->users, array('user_login' => $new_user_login), array('ID' => $user_id));
ใช้งานได้ดีและฉันไม่คิดว่าจะมีผลกระทบร้ายแรงใด ๆ เนื่องจาก WP ใช้ ID ผู้ใช้ในการกำหนดโพสต์ / ความคิดเห็น (และอื่น ๆ ) ให้กับผู้ใช้
ปัญหาเดียวที่ฉันคิดได้ก็คือเมื่อผู้ใช้นี้เข้าสู่ระบบในปัจจุบันเขาจะออกจากระบบหลังจากที่ user_login เปลี่ยน