最近、私のサイトでSimple WordPress Membershipを使用して有料記事を公開するシステムを導入しました。しかし、特定の設定をオンにすると一部の読者からエラーメッセージが出てしまう、という問題が発生しました。今回はその問題の解決方法を共有します。
問題の発生
Simple WordPress Membershipで「WP ユーザー同期を強制」にチェックを入れると、ログインした際に以下のようなエラーメッセージが表示されることがあります。
“エラー!このサイトの設定では、WPユーザーの強制ログイン機能が有効になっています。指定されたユーザー名が見つかりませんでした。このエラーは、メンバーアカウントに対応するWPユーザーアカウントがない場合に発生します。そのため、プラグインはユーザーをWPユーザーシステムにログインできません。
このエラーは、サイト管理者の権限によりメンバーアカウントに対応するシステム側アカウントの自動同期を無効にすることで解消できます。
一方、この設定を外すと、Simple WordPress Membershipのショートコード、[swpm_login_form]でログインしたときに、ログインが認識されず、有料記事が閲覧できないという問題が発生しました。
解決策と考察
様々な試行錯誤の結果、Wordfence Login Securityプラグインを無効化し、またSiteguardプラグインの「画像認証」の設定を無効化することで、問題を解消することができました。そして、「WP ユーザー同期を強制」にチェックを入れたままでもエラーが発生せず、有料記事が正常に閲覧できるようになりました。
この結果から、Simple WordPress Membershipのメンバーは、WPユーザとは別のシステムに格納されていることがわかりました。そのため、「詳細設定」の中の「WPユーザーと同期」させる設定が重要であり、「WP ユーザー同期を強制」にチェックを入れる必要があることが理解できました。
まとめとアドバイス
「ログインしているのにログアウト扱い?」というような問題が起きた場合、まずは「WP ユーザー同期を強制」の設定を確認してみてください。次に、プラグイン同士がコンフリクトを起こしていないかも確認するとよいでしょう。私のケースでは、Wordfence Login SecurityプラグインとSiteguardプラグインが関与していました。
プラグインは便利な一方で、互いに干渉し合うことで思わぬ問題を引き起こすことがあります。細かな設定や相性を確認しながら、最適な動作環境を作り上げていくことが重要です。
以上が、私が経験した問題とその解決策についての共有でした。この記事が同じような問題に直面した方の一助になれば幸いです。