WordPressで会員制サイトを作ることが増えてきました。
今回は定番のプラグイン “Theme My Login” 等を利用して、会員制サイトに必要な機能の実装方法をまとめてみます。
(5〜6回くらいに分けて連載する予定です)
関連記事一覧
機能(仕様)
- メールアドレスとパスワードで会員登録/ログイン
(ユーザー名は入力させない)
- メールアドレスの認証
- 登録ユーザーは、自分のプロフィール/メールアドレス/パスワードの変更が可能
- パスワード紛失時に再設定が可能
利用プラグイン
下記プラグインをインストールします。
準備:WordPressの設定
ユーザーが会員登録できるよう、WordPressの設定をします。
- 管理画面「設定」→「一般」内の「だれでもユーザー登録ができるようにする」にチェック
- 「新規ユーザーのデフォルト権限グループ」を「購読者」に設定
権限グループについては、用途によって変更してください。
(サイトの閲覧のみをさせたい場合は「購読者」です)
準備:Theme My Loginのテンプレートファイルをコピー
wp-content/plugins/theme-my-login/templates 内にあるファイルで、必要なものを自分のテーマファイル内にコピーします。
コピーしたファイルを変更することで、登録/ログインフォームの見た目や項目を変更することが出来ます。
- register-form.php
(会員登録フォーム)
- login-form.php
(ログインフォーム)
- profile-form.php
(ユーザーのプロフィール編集フォーム)
- lostpassword-form.php
(パスワード紛失時、新しいパスワード発行用のメールアドレス入力フォーム)
- resetpass-form.php
(新しいパスワード再発行フォーム)
準備:Theme My Loginの設定
管理画面「TML」で各種設定を行います。
「General」タブ
- 「Enable e-mail address login」にチェック
- 「Enable AJAX」にチェック
- 「Enable Custom E-mail」にチェック
- 「Enable Custom Passwords」にチェック
- 「Enable Security」にチェック
- 「Enable Themed Profiles」にチェック
- 「Enable User Moderation」にチェック
上記にチェックを入れて保存すると、管理画面の左側に下記の項目が増えます。
「E-mail」タブ(Custom E-mail)
会員登録時の自動返信メール文言を任意に設定できます。
- 「New User」・・・登録完了時
- 「Retrieve Password」・・・パスワード再設定の申請時(パスワード再設定用のURLが書かれています)
- 「Reset Password」・・・パスワード再設定完了時
- 「User Activation」・・・新規登録時(メールアドレス認証用のURLが書かれています)
「Themed Profiles」タブ(Enable Themed Profiles)
- 「Themed Profiles」・・・ユーザーのプロフィール画面を、管理画面ではなくテーマファイルのテンプレートで表示する権限を設定します。
今回は「Subscriber(購読者)」にチェックします。
- 「Restrict Admin Access」・・・管理画面へのユーザーの制限を行います。同様に「Subscriber(購読者)」にチェックします。
「Moderation」タブ(Enable User Moderation)
E-mail Confirmation にチェックを入れます。
新規登録時に、メールアドレス認証用のメールが自動で送信されるようになります。
準備:固定ページの作成
Theme My Loginを有効化すると、下記の固定ページが自動で作成されますので、確認しておきます。
- /login(ログイン)
- /register(登録)
- /resetpass(パスワードをリセット)
- /lostpassword(パスワード紛失)
- /あなたのプロフィール(プロフィールページ)
- /logout?*********(ログアウト)
プロフィールページのみ、URLが日本語に設定されているため、
/あなたのプロフィール → /profile のようにお好みでslugを変更しておきます。
また、各固定ページの本文に自動で書かれているショートコード [theme-my-login] は、先ほどコピーしたTheme My Loginのテンプレートを呼び出すためのものです。
→ /register ページの場合、register-form.php の内容を出力するようになっています。
とりあえずこれで準備は完了です。
会員登録が出来るか試す
/register にアクセスすると、自動的に↓のような画面になっています。
ユーザー名、メールアドレス、パスワードを設定すると、設定したメールアドレスに認証用メールが送信されます。そのURLをクリックすると、認証が完了です。
とりあえずこれだけで、会員登録が可能になります。簡単すぎますね。
ログインするとプロフィール画面も作成されています。
とりあえずここまでで、簡単に登録機能が追加できました。
次回、ユーザーの登録項目をカスタマイズしてみます。
関連記事一覧