あるページの話を相談されていたときに「限られた人にしか見えないページを作りたい」という話がありました。サイト全体をログインしたユーザーでしか使えない方法は以前「WordPressで限られたメンバーだけのサイトをプラグインで作ってみる」で書いたプラグインでできるのですが、今回は他のページは誰でも見ることができ、指定したページだけログインしたユーザーにしか見えないページを作るということなのでそれとはちょっと違います。
ちょっと調べてやってみたら案外簡単に、ログインしたユーザーにだけ見せるページを作ることができたので、その方法について書きます(^^)/
こんなページをログインしたユーザーにだけ見せたい
ログインしたユーザーだけにしか見えないページを作る、ということですが例えば、
こんな感じの「ログインユーザーさんだけが利用できるセール」ページを作って、ログインしたユーザーさんだけが閲覧可能になるようにしたい!というようなことがあると思います。そういう時に使える方法を考えました。
ログインするユーザーを登録する
試しになのでダッシュボードからログインするユーザーを登録します。
ダッシュボード ユーザー>新規追加 をクリック
こんな感じに登録します。ページを見ること以外は特に何もして欲しくないので、権限グループ は 購読者 にしました。
メンバー専用のテンプレートを作って表示を確認する
固定ページでメンバーしか見ることができないようにするにはメンバー専用のテンプレートを作って、それを適用します。
といっても、作り方はとても簡単です。
親テーマから page.php を 子テーマにコピー
子テーマのpage.phpを page-membersonly.php にリネームする(-xxxxの名前は自由に付けてかまいません)。
page-membersonly.php を開いて、一番上に書いてある <?php の直後に(なければ <?php を追加して最後に ?> を追加)
/** Template Name: page-membersonly */ if (!is_user_logged_in()){ header( "location: " . home_url() ); }
この行を追加します。Template Name: page-membersonly は今リネームしたファイルの .php を除いた部分となります。別の名前を付けた場合はその名前をここに入れます。
その次の行で もしログインユーザーでなければ、トップページを表示する という命令が書いてあります。これで、ログインしていないユーザーが見に来たときにこのページは表示されずトップページに移動することになります。
最初にこれを入れるだけで他はそのままでOKです。
メンバー専用にしたい固定ページの編集画面で
ページ属性 テンプレート が デフォルト になっていると思いますが、
▼ をクリックして今作ったテンプレート page-membersonly を選びます。
固定ページの更新(新規の時は公開)をクリック。
これでメンバー専用のページができました。
メンバー専用ページを見てみる
ログインしていない状態でメンバー専用ページを見ようとすると
このようにトップページが表示されます。
先ほど作ったテストユーザーでログインします。
そして、メンバー専用ページを見ると
ログイン済みのユーザー専用ページを見ることができるようになりました(^^)/
これで会員限定のコンテンツを公開することが簡単にできますね。
本格的な運用を考えると考慮すべきこと
これを本格的に運用しようとすると考慮すべきことがあります。
・ログインしたとき必ずダッシュボードに行くが、購読者だったらトップページに行くようにしたい
・ログインするときのログイン画面の画像はWordPressではなく、そのサイトの独自のものにしたい
・購読者がログイン済みのとき、ツールバーを表示するのではなく、サイドバーにログアウトとプロフィール変更のリンクを付けたい
・ユーザーの新規登録ができるようにしたいけど、自動認証ではなく一旦管理者が確認して承認したい
などです。これらについて方法が分かっているものもあるのですが、試してみないと実際はどうなるか分からない部分もあるのでそれについてはまた別途blogでかきたいと思います。
[amazon_searchlink search=” Webマーケティング”]
コメント
コメント一覧 (4件)
会員がログインした後、その会員固有のマイページへとページが自動的に移行するようにするにはどうしたらいいのでしょうか。
meekunさん、おはようございます!ここでご説明した方法は「テンプレートを変えればログインした人にしか見せないページが作れる」方法です。会員固有のマイページというようなものがWordPressには存在していないと思いますので何を想定されているのかちょっとわかりません。ログインした後に遷移するページを指定する方法でしたら
「WordPress ログインした後に遷移するページを指定」のキーワードで検索するといくつか方法が見つかると思いますので、試されてみたらいかがでしょうか?
コメントを送信した後のサンキューページがあると良いなと思いました。
みやざきさん、こんにちは。ご意見ありがとうございます。コメントというとこのコメント欄のことですかね~。んーなかなか手が回りませんが調べるとどうやらできそうですね。いつかトライしてみたいと思います。