ここではメンバー登録制のフォーラムの作り方を紹介しています
メンバー登録制にした場合は、ユーザーアカウントの登録やパスワード紛失への対応、フォーラム退会時等の処理をどうやるのかが気になると思いますので、そのあたりを順番に紹介していきます
メンバーの登録手順
今回は bbPress ログインウィジェットを使って、登録、パスワード紛失、ログイン処理を行います
初めに登録用の固定ページとパスワード紛失用の固定ページを作成します
ユーザー登録のページ作成
フォーラムルートのページを作成したのと同様にユーザー登録用の固定ページを作成してショートコード bbp-register を記述します
パスワードリセットのページ作成
同様にパスワード紛失時のリセット及び再発行を行うための固定ページを作成してショートコード bbp-lost-pass を記述します
ログインウィジェット
先ほど作成した登録とパスワード紛失ページのURLをログインウィジェットに設定して、サイドバーに配置します
※URLはあなたのサイトのURLです。celtislab.net の部分をあなたのサイト名に変更する必要がありますのでお間違えなく!
サイトページのサイドバーにログインウィジェットが表示されます
※特定のページのみにログインウィジェットを表示させたい場合は Widget Display Filter プラグインを使用します
WordPress Plugin : Widget Display Filter
ユーザー登録時の実行手順
ここからは実際に登録する時の流れを紹介します
ログインウィジェットの登録リンクをクリックすると登録ページを表示されます
フォーラムメンバーとして登録するユーザーアカウント名と通知を受け取るためのメールアドレスを入力して 登録 ボタンをクリックします
メールアドレスの入力はスペル間違い等がないように慎重に行う必要があります。メールアドレスに間違い等があると確認用メールが届かないのでパスワードの取得が出来ません
但し、サーバー側では仮登録されている状態なので再度同じユーザー名で再度登録しようとしても登録済みとなります
ユーザー登録するとメッセージが表示され、下記のようなメールが登録したユーザーに届きます
届いたメール内にあるリンクをクリックすると、パスワードが記載されたページがブラウザに表示されます
このパスワードをそのまま使用してもよいですし、新しく設定することもできます
新しいパスワードにする場合は、表示されているパスワードを消してパスワードを入力します
パスワードをリセット ボタンをクリックするとパスワードが変更されます
これで管理人が何もしなくてもユーザー登録が自動的に完了して、フォーラムへログインしてトピックを作成したり、返信したりできるようになります
ユーザー登録 Ajax 対応版
ここまで紹介した登録処理は、実際は WordPress の登録機能をそのまま使用しているだけです。従って登録用ページを用意しているのに未入力や登録済み等のエラーがあれば WordPress のログイン画面 wp-login.php へリダイレクトされてしまうので、フォーラムに登録しようとしている人を驚かせてしまうかもしれません。
bbPress forum utility pack プラグインでは登録ページの処理を Ajax 対応版に置き換えます。Ajax対応版にすることで入力間違い等があっても登録ページ内にエラーが表示され wp-login.php へリダイレクトされなくなります
Ajax 版による登録では bbpress の form-signup.php テンプレートを置き換えた form-custom-signup.php テンプレートを使用しており、そのテンプレートを使用した登録フォームからの登録だけを独自に追加した bbpress 登録ユーザー として安全に登録できるように処理しています。従って、wordpress 設定のだれでも登録できるようにするを無効化することができますし、無効化することがセキュリティの強化にもなります
また、登録フォームより自動登録されたフォーラムユーザーはユーザー一覧からも簡単に区別して管理できるようになります
※bbPress forum utility pack プラグインでは、bbpress 登録ユーザーの権限グループに対してフォーラム退会機能等の便利な機能を実現しています
パスワード紛失時の対応
ログインウィジェットのパスワード紛失リンクをクリックするとパスワード再発行ページが表示されます
ユーザーアカウント名、またはユーザー登録時に登録したメールアドレスを入力して パスワードをリセット ボタンをクリックするとメールアドレスに確認用のメールが届きます
記載されているリンクをクリックすると登録時と同じように 新規パスワードの登録表示がされるので、同様にパスワードを設定してリセットボタンをクリックすれば新しパスワードでログインできるようになります
以上が、シングルサイトでのユーザー登録手順です
登録処理自体は、wordpressの登録機能を使用しており、使ってみるとフォーラムユーザーの登録にはちょっと足りない部分もあると感じたのでプラグインを作成して機能を補いました
bbPress forum utility pack プラグインの使用有無により動作の違いを確かめてみて下さい (^^)
マルチサイトでのユーザー登録について
マルチサイトでのユーザー登録はシングルサイトより複雑でわかりにくく、内部処理的にも登録確認の手順が1段増えてシングルサイトよりも不正な登録がされにくい仕組みとなっています
基本的には特権管理者による許可が必要で、ユーザーアカウント(登録されたユーザー名とメールアドレス)の登録自体はマルチサイト全体で管理されているアカウントとして登録されます
マルチサイトで登録されたユーザーのアカウントデータは全てのサイトで共通に使われますが、その権限だけをサイト毎に異なる権限として付与する仕組みになっています
従って、一つのサイトで登録したユーザーは、別のサイトに登録しようとしても登録済みということです
例えばマルチサイトでメインサイト、サブサイト1、サブサイト2という構成でサブサイト1とサブサイト2で別々にフォーラムを運営しているとします
ユーザー hoge さんを登録して、メインサイトは投稿者、サブサイト1は購読者でフォーラム参加者、サブサイト2では権限なしというようにできます
この場合ログイン自体は全てのサイトで可能となり、サブサイト1のフォーラムに投稿できますが、サブサイト2のフォーラムに移ると権限がないので投稿できなくなります(アクセスするURLによりダイナミックに権限が切り替わります)
ところが bbPress フォーラム設定の 自動権限グループ の登録済みの訪問者にフォーラムの役割を自動的に付与するを有効にしている場合は、ここで指定している権限がサブサイト2を訪問した時に自動的に与えられてサブサイト2のフォーラムへ投稿できるようになってしまいます
bbPress forum utility pack ではマルチサイト時に訪問者に自動的にフォーラム権限を与えるかどうか設定できるようにしていますが、様々なマルチサイトの構成に対応するには不十分かもしれませんので様々なケースを想定して確認することが大切です
次はログイン後の様々な操作について紹介します