嗯,好的,所以实际上
- 您的用户中有一部分人在 WordPress 和 Discourse 上的电子邮件地址不同。
- 您的用户名保证与您的身份提供商为 WordPress 和 Discourse 提供的用户名相同。
如果我们能够将 WP Discourse 用户 webhook 与 DiscourseConnect 功能分离(这是可能的),那么用户匹配将基于电子邮件而不是用户名进行。您的情况在某种程度上特定于您的身份设置。
我认为这种情况最好通过在您的 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);
基本上,在登录后将 discourse_username 元字段分配给 WP 用户名,因为它们保证是相同的。请注意,“user_login”在 WordPress 代码中有时被称为“username”。