複数のワードプレスサイト間でユーザーを共有する方法

会員制のサイト・ブログを複数運営している場合、会員情報を共有すればユーザー情報管理が楽になります。この記事では、プラグインを使用して手軽ユーザー情報をシンクロさせたい!というお悩みを解決します。

複数のサイトを運営していて、
「サイト規模が拡大して、機能ごとにサイトを分割したいけど会員情報をどうしよう…」
「複数のサイトでユーザー情報を共有できないの?」
と思ったことはありませんか?

このページでは、ワードプレスサイト間でユーザー情報を共有する方法を伝授します!

目次

ユーザー情報を共有するメリット

ユーザー情報を共有し、状態を自動シンクロできたらユーザー管理は相当楽になります。
さらにログイン状態までシンクロすれば、ユーザー的には巨大なWebサービスを使っているような感覚になります。

  • 管理している複数のWordPressサイトに、一括でログインできる。
  • 会員制サイトの場合、プロフィールを共通にできる。
  • マルチサイト形式にしないためサイト間の独立性が高い。

前提条件

お使いのバージョンやプラグインの相性、すでに適用している他のカスタマイズ等によっては動作しない可能性があります。

動作確認環境

筆者が動作確認した際に、同期させた両方のサイトが以下の環境です。
【WordPress】6.7.1
【テーマ:SWELL】2.13.0

使用するプラグイン

ワードプレスの場合、プラグインを使うだけでユーザー情報共有が可能です!
今回ご紹介するプラグインは「WP Remote Users Sync」です。

設定方法

同期したい全てのサイトについて、以下の手順を実行します。

STEP
プラグインをインストールし有効化

このプラグインでは、例えばA・B・Cの3サイトがある場合、どのサイトからログインしても他2つのサイトもログインした状態になります。
情報共有したいA・B・Cの3サイト全てにこのプラグインをインストールして有効化します。

STEP
Action Keyの設定

暗号鍵と署名鍵を設定します。
この2種類の鍵が合致するとユーザー情報を同期するため、セキュリティ観点から重要な設定です。

暗号鍵と署名鍵を設定します。
この2種類の鍵が合致するとユーザー情報を同期するため、セキュリティ観点から重要な設定です。

管理画面から「設定」→「WP Remote Users Sync」→「Security」タブと進みます。
Action Encryption Key(暗号化鍵)とAction Signature Key(署名鍵)を設定します。

どちらもパスワードのようなものでなので、Googleパスワードマネージャーやパスワード生成ツールなどで複雑な英数字記号が混ざった文字列を作って設定します。
このキーは全サイト(例えばA・B・Cの3サイト)で同じ文字列を設定します。

セキュリティ観点

Action Encryption Key(暗号化鍵)とAction Signature Key(署名鍵)は同じ文字列でも動作します。
ただしセキュリティ観点からは、別の文字列を設定しておく方が良いでしょう。

STEP
任意:IPアドレス設定

画面右側の「IP Whitelist」では、万が一暗号鍵と署名鍵がバレた場合でも、IPアドレスの合致も確認してセキュリティを強化する設定ができます。

IPアドレス設定

ただし、カフェ等のWi-Fiを使用する方や、自宅と会社の双方からログインする方などは、環境によってはIPアドレスが毎回変わる可能性があります。
固定IP環境かどうかを確認できない方には、何かあった際に対応できなくなる可能性があるためおススメできません。

STEP
ログイン時動作設定

「Miscellaneous」タブを選択します。
やや上級者向けの機能のため、意味を理解できない方はチェックしないままの方が良いでしょう。

「Miscellaneous」タブを選択します。
やや上級者向けの機能のため、意味を理解できない方はチェックしないままの方が良いでしょう。
Force Login Redirects & Logout Everywhere

全サイトに強制ログイン(ログアウト)します。
ログインできるまで処理を継続し、その間画面には「Processing..」と表示されます。

当然同期するサイト数が多いほど時間がかかりますが、基本的に同期性能は高いです。
※同期途中で接続が切れた場合など、同期失敗の可能性もあるため確実に同期できるとは限りません!

Force Disable Login Redirects & Logout Everywhere

ログイン(ログアウト)を1度試みて成功・失敗を判定します。
成功した場合のみ同期処理するため確実性に欠けますが、各サイトへの処理が軽いため、サイト数が多くても高速で処理が終わります。

こちらも処理中は画面に「Processing..」が表示されます。

Use Silent Redirection

チェックを入れると、上記2つの処理間の「Processing..」表示を行わないようにします。
プラグインの公式説明によれば、メッセージを表示しない方が処理が軽くなるということですが、筆者の体感速度的には変わりませんでした。

同期するサイト数が多く時間がかかる場合は、処理中であることがユーザーに分かるように「Processing..」表示する(= 本項目は未チェック)方が良いでしょう。

STEP
一度保存

ここで一度保存しておきます。(できれば1タブ設定毎に保存した方が良いですが…)

最低一度はプラグイン設定を保存しておかないと、接続テストした際にうまくいかない可能性が高まります。
個の保存は、万一テストに失敗した際の被害を最小限に抑える意味もあります。

STEP
ユーザー情報の同期する項目を設定

「Remote Sites」タブを選択します。

「Remote Sites」タブを選択します。

画面右側の「Add Remote Site」へ、同期させるサイトのURLを入力します。
複数サイトの場合は、1サイトずつAddしていきます。

画面左の「Outgoing Actions」は、現在設定中のサイトで操作された時の動作設定です。
自サイトでチェック項目操作があった際、他のサイトに反映させます

画面中央の「Incoming Actions」は他の同期サイトで操作された時の動作設定です。
他サイトでチェック項目操作があった際、自サイトに反映します。

上級者で内容を理解していて且つ、よほどの理由がない限りは、「Outgoing Actions」と「Incoming Actions」は同じ項目にチェックを入れておきます。

項目内容
Loginログイン
Logoutログアウト
Createユーザー登録
UpdateWordPress標準の登録情報
Deleteユーザー削除
Passwordパスワード
Rolesユーザー権限
Metadataメタデータ(カスタムフィールド)
上記の値が変更された時に同期する
STEP
テスト

最後にチェックした各項目のtestボタンを押下します。
成功すると緑色のバッジが表示されます。
エラーが発生した場合はエラー理由が書かれたポップアップが表示されます。

注意点

筆者が確認した限りでは、同期テストが成功しただけでは既存ユーザーを反映させることはできません。
必ずユーザーが何かしらのアクションを起こさないと、他サイトには反映されません。

シェア大歓迎!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次