ワードプレスで会員制サイトを構築するための具体的な手順を紹介したいと思います。難しいことをしなくても、プラグインなどを使って簡単に構築することができます。
まず、構築にあたって、ここでいう会員制サイトを以下に定義しておきたいと思います。
・トップページは全員に公開
・トップページ以外のページはIDとパスワードが必要
・IDとパスワードは全会員共通
・会員はWordPressの管理画面を閲覧、操作することはできない
01. Exec-PHP をインストール
記事やウィジェット内でPHPを使えるようにするWordPressプラグイン「Exec-PHP」をインストールして有効化します。
02. サイドバーにログインフォームを設置する
ログインフォームをサイドバーに設置します。コードはこちらのブログで紹介されていたので、使わせてもらいます。先ほどの「Exec-PHP」をインストールしていればウィジェットでもPHPを使うことができますね。
<?php if (is_user_logged_in()) : ?><br /> ようこそ! <?php global $current_user; echo $current_user->display_name ?>さん</p> <p> ログアウトは » <a href="<?php echo wp_logout_url() ?>&redirect_to=<?php echo esc_attr($_SERVER['REQUEST_URI']) ?>">こちら</a><br /><?php else : ?><br />会員専用ページを閲覧するには、ログインして下さい。</p> <form method="post" action="<?php echo wp_login_url() ?>?redirect_to=<?php echo esc_attr($_SERVER['REQUEST_URI']) ?>"> </p> <p><label for="login_username">ログインID:</label></p> <p> <input type="text" name="log" id="login_username" value="" size="36" /></p> <p><p><label for="login_password">パスワード:</label></p> <p> <input type="password" name="pwd" id="login_password" value="" size="36" /></p> <p><p><input type="submit" value="ログイン" /></p> </form> <p><?php endif; ?>
ちなみに、後述するプラグイン「WP-Members」にもログインフォームをウィジェットに設置することはできます。ただ、出力される文章を柔軟に変更できないので、文章を変更したい方は上のコードをお使い下さい。
03. 「WP-Members」と「Members Only」をインストール
会員サイトを作る為に必要なプラグイン「WP-Members」と「Members Only」をインストールします。各種設定は、下の解説記事のまま進めればOKでした。
参照: WordPressで “会員制サイト” を実現するプラグイン『WP-Members』と『Members Only』(設定晒し有)
04. 新規ユーザーを作る
会員専用のログインユーザーを新たに作ります。ワードプレスの管理画面「ユーザー」→「新規追加」から「購読者」として追加します。
05. 「Role Manager」をインストール
先ほど追加した会員用ユーザーが管理画面にログイン出来ない様にプラグイン「Role Manager」で権限を設定します。具体的に言うと、「read」も含めた全ての権限を外します。すると、会員は管理画面を閲覧、操作することができないように設定できます。
以上で、下記条件を満たした会員サイトが構築完了です。
・トップページは全員に公開
・トップページ以外のページはIDとパスワードが必要
・IDとパスワードは全会員共通
・会員はWordPressの管理画面を閲覧、操作することはできない
追記(2012.11.03)
会員制サイト作成に打って付けのプラグインを発見しましたので、こちらもご参考にどうぞ
検索じゃなくて「URLを直接指定」では?
画像と動画を検索に引っかからないようにすれば?
大変参考になりました。
ありがとうございます。
一つ質問があるのですが。
会員制サイトができたのは良いのですが、その中にある画像や動画のURLを直接指定すると、ログインしていなくとも見えてしまうという問題がある事に気づきました。
会員にしか見せたくない画像や動画があるのでこの問題は重要です。
何か解決策をご存知でしょうか。
よろしくお願いいたします。