こんにちは、けいすけです。
今回はWordPressで会員サイト機能を実装できるWP-Membersプラグインの使用方法について解説します。
本記事を読めばWordPressで会員サイトをつくれるようになります。
目次 [表示する]
インストール方法
プラグイン>新規追加からWP-Menmbers Membership Pluginをインストールし有効化してください。
推奨設定
WP-Membersプラグインを使用する際にWordPressで推奨される設定があります。特に理由のない限りは以下の設定を行っておきましょう。
設定>ディスカッション設定から「ユーザー登録してログインしたユーザーのみコメントをつけられるようにする」にチェックを入れます。
設定>表示設定から「抜粋のみを表示」を選択します。
基本設定
ログインページの作成
ログイン用ページを作成するには、固定ページを新規に作成しショートコードへ[wpmem_form login]
を入力します。
会員登録ページの作成
会員登録用ページを作成するには、ショートコードへ[wpmem_form register]
を入力します。
プロフィールページの作成
ログイン用メールアドレスなどの登録情報を編集するページを作成する場合は、ショートコードへ[wpmem_profile]
を入力します。
使用できるショートコードは他にもありますが基本的には上記の3つだけで事足りるので割愛します。気になる方は公式ページで確認してください。
ログインフォームの設定
設定>WP-Membersの固定ページの項目へ先ほど作成したログインページ、登録ページ、ユーザープロフィールページをそれぞれ設定します。
上記の設定をするとログインフォームに会員登録フォームとパスワード再設定フォームへのリンクが表示されます。
会員登録フォームの設定
会員登録フォームはデフォルトで住所などを含む11項目の入力欄が表示されます。
11項目も必要ない場合は、設定>WP-Membersのフィールドタブから項目を非表示にすることができます。フィールドの追加により独自の項目を追加することも可能です。
すべての項目のチェックを外すとユーザー名とメールアドレスの入力欄のみ表示されます。
自動送信メールの設定
ユーザー名とメールアドレスを入力して新規ユーザー登録すると、ログイン用に自動生成されたパスワードが、会員登録フォームに入力したメールアドレスへ自動送信されます。
メールの内容は、設定>WP-Membersのメールタブから編集することが可能です。
メール本文に使用されている[blogname]
はブログ名、[username]
はユーザー名、[password]
はパスワード、[reglink]
はログインフォームのリンクへそれぞれ置き換えられて送信されます。これらのコードが何に対応しているかはフィールドタブから確認することができます。
会員専用ページの設定
WP-Membersオプションタブの「内容をブロック」は、会員専用ページとするかどうかを選択することができます。「ブロックする」を選択した場合、投稿または固定ページのすべてがログインユーザーしか閲覧できない状態になります。
特定のページのみ会員専用ページ化する場合は「ブロックしない」に設定してページ毎に会員専用ページを設定しましょう。
特定のページに対してはページ編集画面のページ制限から会員専用ページを設定することができます。それぞれの意味は次の通りです。
- Unblockedはすべてのユーザーが閲覧可能
- Blockedはログインユーザーのみ閲覧可能
- 非表示は非ログインユーザーだと非表示となる
おまけ
私がWP-Membersプラグインを使用して会員専用サイトを制作した際、いくつかの問題を解決するために次のような解決方法を実施したので記しておきます。
- 表示画面上部にある管理バーの非表示化
- ログインページと会員登録ページへのリンクをログイン後に非表示化
- ログイン後にリダイレクト
- ログアウト機能の実装
- アカウント削除機能の実装
表示画面上部にある管理バーの非表示化
WordPressはログインすると画面上部に管理バーが表示されます。非常に便利な機能ではありますが、購読者の権限が与えられたその他のログインユーザーにも通常だと管理バーが表示さてしまうのです。
管理者権限を持たないユーザーに対して管理バーを表示させないための解決方法としてはfunction.phpへ次のように実装します。
add_action( 'after_setup_theme', 'subscriber_hide_admin_bar' );
function subscriber_hide_admin_bar() {
$user = wp_get_current_user();
if ( isset( $user->data ) && !$user->has_cap( 'edit_posts' ) ) {
show_admin_bar( false );
}
}
ログインページと会員登録ページへのリンクをログイン後に非表示化
ログイン後にログインページや会員登録用ページへのリンクを表示する必要はありませんよね。逆も然りです。
WP-Membersプラグインには[wpmem_logged_in]ここにテキストが入ります[/wpmem_logged_in]
で囲うことでログインユーザーのみに表示したり、[wpmem_logged_out]ここにテキストが入ります[/wpmem_logged_out]
で囲うことで非ログインユーザーのみに表示したりすることができるショートコードが用意されています。
ログインページなどへのリンクはナビバーに表示することが多いと思います。しかし、メニューの編集画面からは上記のショートコードを用いることができません。
ただ、WP-Membersプラグインはメニューの編集画面から「ログインユーザーのみに表示」や「非ログインユーザーのみに表示」、「全員に表示」を選択できるようになっています。
「Logged Out Users」を選択すると非ログインユーザーのみに表示することが可能です。
ログイン後にリダイレクト
ログイン後にログインページのままでいるよりも、ログイン後は会員専用ページやトップページへ移動してあげたほうがユーザーに対して親切ですよね。
移動させるためにはリダイレクト機能を実装する必要があります。
方法は簡単でfunctions.phpへ以下の通りに実装してください。以下はトップページへリダイレクトしています。home_url()
を書き換えることでリダイレクト先を指定のページへ変更することが可能です。
add_filter( 'login_redirect', 'my_login_redirect' );
function my_login_redirect() {
wp_safe_redirect( home_url(), 301 );
exit;
}
ログアウト機能の実装
ログアウトするときにログアウト専用のページに移動してからログアウトするよりもナビバーやサイドバーのリンクから簡単にログアウトできたほうがよいですよね。
ログアウト用のリンクを設置する際のhref属性は"[ログインページのURL]/?a=logout"
です。このリンクを適切なところに設置してください。
アカウント削除機能の実装
WP-Membersプラグインでは、ログインユーザーがアカウントを削除することはできません。アカウントを削除する場合は管理者が管理画面のユーザー>ユーザー一覧から削除する必要があります。
しかし、Delete Meプラグインを使えばログインユーザーがサイト上から自身のアカウントを削除(退会)することが可能です。
下のショートコードでアカウント削除(退会)用のリンクを設置することができます。
[plugin_delete_me]ここにテキストが入ります[/plugin_delete_me]
まとめ
今回はWordPressで簡単に会員サイトを作成する方法について紹介しました。
会員サイトを作るためのプラグインは他にもあるのでいろいろと試してみるのも面白いかもしれません。