WordPressプラグインSSOのユーザーアバターを更新できますか?

SSO プラグインは非常に優れています。
ただし、Discourse から WordPress へユーザーのアバターを同期することができません。
この機能の更新をお願いできますか?

「いいね!」 1

@cmdntd さん、こんにちは :slight_smile:

Discourse を、WP Discourse プラグインを通じて WordPress の DiscourseConnect プロバイダーとして設定されているとのことですね?その認識で合っていますか?

WordPress には、標準機能としてカスタムユーザーアバターは備わっていません。WordPress のアバター用プラグインを使用する必要があります。そのため、WP Discourse プラグインには、Discourse が DiscourseConnect プロバイダーである場合に Discourse のアバターを同期するだけの設定が最初から用意されていないのです。カスタムアバターの扱い方は、WordPress がそのようなカスタム機能をどのように実装しているかによって異なるためです。

ただし、WP Discourse プラグインには、Discourse のアバター URL にアクセスできるフィルター wpdc_sso_client_updated_user が用意されています。このフィルターは、DiscourseConnect を使って WordPress にログインするたびに適用されます。

add_filter( 'wpdc_sso_client_updated_user', 'my_wpdc_sso_client_updated_user', 10, 2 );
function my_wpdc_sso_client_updated_user( $updated_user, $query ) {
	## $query['avatar_url'] を使用
}

つまり、WordPress でユーザーがカスタムアバターを設定できるようにするアバター用プラグインを使用し、かつ上記のフィルターを活用すれば、Discourse が DiscourseConnect プロバイダーである場合に、WordPress ユーザーのアバターを Discourse のアバターとして設定することが可能です。

「いいね!」 2

ありがとうございます、まさに「Discourse Connect provider for Wordpress」ですね。このプラグインを見たことがあります:

ただし、このプラグインはユーザーがアバターを変更する権限も与えてしまいます。
実際には、ユーザーにアバターを変更させたくありません。Discourse のアバターを使用し、アバター変更の権限を無効化することは可能でしょうか?

「いいね!」 1

はい、そのプラグインを使用できます。Discourse の image_url を使用してアバター画像を設定するには、前述のフィルターを使用する必要があります。これは Simple Local Avatars プラグイン固有のものであり、WP Discourse プラグインに直接含まれる機能ではありません。

その統合の処理方法がわからない場合は、プラグインの開発者に連絡するか、Marketplace で誰かを雇うこともできます。

「いいね!」 1

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.