วิธีเปลี่ยนชื่อผู้ใช้โดยทางโปรแกรม (user_login)?


15

เช่นเดียวกับในชื่อจะเปลี่ยนการเข้าสู่ระบบของผู้ใช้โดยทางโปรแกรมอย่างไร

ฉันต้องการใช้wp_insert_userฟังก์ชั่น แต่ปรากฏว่าเมื่ออัปเดตผู้ใช้ปัจจุบันจะไม่เปลี่ยนชื่อผู้ใช้ ฉันควรใช้$wpdb->updateสิ่งนั้นหรือไม่? ถ้าใช่รหัสสำหรับการเปลี่ยนชื่อผู้ใช้จะเป็นอย่างไร การเปลี่ยนแปลงการเข้าสู่ระบบของผู้ใช้จะมีผลอะไรบ้างเนื่องจาก WordPress API ไม่อนุญาตให้เปลี่ยนชื่อผู้ใช้

คำตอบ:


21

ฉันแน่ใจว่า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 เปลี่ยน


1
ไม่จริงตรวจสอบหมายเหตุสำหรับฟังก์ชั่นนี้ (รวมถึงรหัส): โปรดทราบว่าเราไม่สามารถเปลี่ยนชื่อผู้ใช้ผ่านฟังก์ชั่นนี้อันที่จริงชื่อผู้ใช้ไม่สามารถเปลี่ยนจากแดชบอร์ดผู้ดูแลระบบได้เช่นกันเนื่องจาก WordPress ไม่อนุญาตให้ชื่อผู้ใช้ ได้รับการปรับปรุง
Mateusz Hajdziony

ขอบคุณที่ใช้งานได้ดี! แต่ไม่ต้องกังวลเกี่ยวกับผู้ใช้ที่เข้าสู่ระบบเนื่องจากฉันอนุญาตให้เปลี่ยนชื่อผู้ใช้สำหรับผู้ใช้ที่ล็อกเอาต์เท่านั้น (การเปิดใช้งานบัญชีผ่านอีเมล)
Mateusz Hajdziony

@pogoking สิ่งหนึ่งที่คุณอาจต้องการพิจารณาคือผู้ใช้หรือผู้เขียน permalinks อาจเสียหลังจากเปิดใช้งานผู้ใช้เพื่อเปลี่ยนชื่อผู้ใช้ถ้าเปิดใช้งาน permalink สวยดังนั้นคุณอาจต้องใช้มาตรการเพื่อชดเชยที่
Ahmad M

1
ฉันต้องการเพิ่ม $ wpdb ทั่วโลก; เพื่อให้มันทำงาน
Mau

4
โพสต์เก่า แต่ im มองหาที่ทำเช่นนี้ตัวเองมันจะคุ้มค่าการตรวจสอบมีไม่ผู้ใช้อื่นที่มี USER_LOGIN เดียวกันการลงทะเบียนบนเว็บไซต์ของคุณเป็นรูปแบบการเข้าสู่ระบบอย่างเห็นได้ชัดใช้ค่านี้เพื่อหาบัญชีและรหัสผ่านการแข่งขันแฮช
haxxxton

4

คุณอาจพิจารณาเปลี่ยน user_nicename ด้วยการสืบค้น SQL เมื่อทำสิ่งนี้เสร็จแล้ว Permalink ทั้งหมดและฟังก์ชั่นอื่น ๆ จะทำงานได้อย่างสมบูรณ์แบบ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.