음, 알겠습니다. 즉, 실제로는
- WordPress와 Discourse에서 서로 다른 이메일을 사용하는 사용자 하위 집합이 존재하게 됩니다.
- WordPress와 Discourse 양쪽 모두에서 사용자 이름은 ID 제공자(Identity Provider)가 제공하는 것과 동일하게 보장됩니다.
WP Discourse 사용자 웹훅을 DiscourseConnect 기능과 분리할 수 있다면(가능합니다), 사용자 매칭은 사용자 이름이 아닌 이메일을 기준으로 이루어질 것입니다. 현재 상황은 귀하의 ID 설정에 다소 특이한 경우입니다.
이 경우를 처리하는 것이 더 나은 방법은 WordPress에서 사용자 정의 코드를 사용하는 것이라고 생각합니다. 원하시는 것은 다음과 같은 것입니다:
function update_discourse_username( $user_login, $user ) {
update_user_meta( $user->ID, 'discourse_username', $user_login );
}
add_action( 'wp_login', 'update_discourse_username', 10, 2);
기본적으로 로그인 후 WP 사용자 이름을 discourse_username 메타 필드로 할당하면 됩니다. 두 값은 항상 동일하게 보장되므로요. 참고로 "user_login"은 WordPress 코드에서 "username"이라고도 불리는 것입니다.