DiscourseConnect를 사용하지 않는 경우 discourse_username 입력

음, 알겠습니다. 즉, 실제로는

  1. WordPress와 Discourse에서 서로 다른 이메일을 사용하는 사용자 하위 집합이 존재하게 됩니다.
  2. 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"이라고도 불리는 것입니다.