프로그래밍 방식으로 사용자 이름을 변경하는 방법 (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을 param으로 얻지 만이 매개 변수를 설정하면 무시하는 것처럼 보입니다.

따라서이 코드는 좋아 보이지만 원하는대로 작동하지 않습니다 :( :

wp_update_user( array ( 'ID' => $user_id, 'user_login' => $new_login ) ) ;

user_login을 업데이트하려면 사용자 지정 SQL 쿼리를 호출해야합니다.

$wpdb->update($wpdb->users, array('user_login' => $new_user_login), array('ID' => $user_id));

WP는 사용자 ID를 사용하여 게시물 / 의견 (등)을 사용자에게 할당하기 때문에 심각한 결과가 없다고 생각합니다.

내가 생각할 수있는 유일한 문제는이 사용자가 현재 로그인 할 때 user_login 변경 후 로그 아웃된다는 것입니다.


1
실제로는 아니지만이 기능에 대한 참고 사항 (코드는 물론)을 확인하십시오.이 기능을 통해 사용자 이름을 변경할 수는 없습니다. 실제로 WordPress에서는 사용자 이름을 허용하지 않으므로 관리자 대시 보드에서도 사용자 이름을 변경할 수 없습니다. 업데이트됩니다.
Mateusz Hajdziony 2016 년

고마워, 잘 작동합니다! 그러나 로그 아웃 한 사용자에 대한 사용자 이름 변경 만 허용하므로 (전자 메일을 통한 계정 활성화) 로그인 한 사용자에 대해 걱정할 필요가 없습니다.
Mateusz Hajdziony 2016 년

@pogoking 한 가지 고려해야 할 사항은 예쁜 퍼머 링크가 활성화 된 경우 사용자가 사용자 이름을 변경할 수있게 한 후에 사용자 또는 작성자 퍼머 링크가 손상 될 수 있으므로이를 보완하기위한 조치를 취해야 할 수도 있습니다.
Ahmad M

1
글로벌 $ wpdb를 추가해야했습니다. 작동시키기
Mau

4
로그인 폼은 분명히 계정과 일치하는 암호 해시 찾으려면이 값을 사용하기 때문에 자신이 일을보고 이전 게시물지만, 메신저, 당신의 사이트에 등록 된 동일한 USER_LOGIN을 가진 다른 사용자를 밤은 가치가 확인 될 것
haxxxton

4

SQL 쿼리를 통해 user_nicename을 변경하는 것도 고려할 수 있습니다. 이 작업이 완료되면 모든 퍼머 링크 및 기타 기능이 완벽하게 작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.