フロントエンドユーザー管理プラグインの活用事例として、ウェディング写真共有サイトの構築を以前取り上げましたが、今回はメンバーのみに記事を閲覧可能にする会員制サイトをWordPressのプラグインであるフロントエンドユーザー管理プラグインを使用して構築する方法を考えてみます。
当サイトで販売中のネットショップ管理プラグインを使用すれば、会員制サービス、会員登録を有料にする一連の流れを自動化することもできますが、それはまた別の機会にご説明するとして、今回は会員、メンバーのみに閲覧できるサイト、記事の作成方法をみていきましょう。
WordPressとフロントエンドユーザー管理プラグインのインストール
まずは会員制サイト、メンバーサイトの基礎となる、WordPressのインストールからフロントエンドユーザー管理プラグインのインストールまでを行います。
- WordPressをインストールします。
- インストール後、管理メニューの設定にある一般を開き、メンバーシップの誰でもユーザー登録ができるようにするにチェックを入れて変更を保存します。
もしデフォルトの新規ユーザー登録を使用したくない場合は、チェックを入れずに、ユーザー管理のオプション設定にある新規ユーザー登録にチェックを入れてください。サイト側でのみ新規ユーザー登録ができるようになります。 - 同じく管理メニューの設定にあるパーマリンク設定から、パーマリンクの設定を行います。デフォルトではフロントエンドユーザー管理プラグインが正常に動作しないので、デフォルト以外の設定を選択してください。カスタム構造を利用する場合は、「/%category%/%postname%/」や「/%category%/%post_id%/」などを設定するとよいでしょう。
- 続いて、フロントエンドユーザー管理プラグインをインストールします。プラグインをアップロードし、有効化します。有効化した際に自動的に会員登録やログイン用のloginというスラッグをもつページが生成されます。
- ログインはこのページからもできますが、ウィジェットにも対応しているのでサイドバーにログインボックスを表示することが可能です。ウィジェットは、管理メニューの外観の中にあるウィジェットから設定できます。
フロントエンドユーザー管理プラグインのオプション設定から様々な設定ができるので、作成予定の会員制サイト、メンバーサイトに応じて設定を変更してください。
会員制サイト、メンバーサイトの種類
以上で、会員制サイトの準備ができました。それでは会員のみ閲覧できる記事、ページの作成方法ですが、次の三通りの方法が考えられます。メンバーサイトの目的によって使い分けてください。
- 全てのページを会員しか閲覧できないようにする
- 会員向けの投稿を会員以外には内容を一切表示させない
- 会員向けの投稿をタイトルや抜粋など一部のみ公開し、本文は会員以外には閲覧させない
それでは順番に上記の方法を解説していきます。
1.全てのページを会員しか閲覧できないようにする
完全なクローズドサイトでトップページから、ログイン画面を表示するタイプです。会員、メンバー以外に余分なコンテンツを表示しません。普通に投稿することで投稿もページも会員向けページとなります。
全てのページを会員しか閲覧できないようにするには、フロントエンドユーザー管理プラグインの環境設定で、ログインURLに転送にチェックを入れます。これで、ログインしていない場合は、ログインページに必ず転送させることができます。また、続くログインURLに転送の例外URLに例外的にログインしていないユーザーにも閲覧できるようにするURLを指定することもできます。サイトの説明やユーザー登録の仕方などの解説ページを例外URLに加えるとよいでしょう。
2.会員向けの投稿を会員以外には内容を一切表示させない
先ほどと異なり、基本的にサイトの閲覧はできます。この方法では、会員とログインしていないユーザーの両方に向けてコンテンツを公開できます。会員向けのコンテンツはログインしていないユーザーには一切分からないようになります。もし、投稿の一部、たとえばタイトルや抜粋のみをログインしていない会員にも閲覧させたい場合は3番目の方法を検討してみてください。
まず、Capability Manager というプラグインをインストールします。ユーザーの権限をコントロールするプラグインは色々ありますが、ここでは、Capability Manager を使用します。インストールが完了すると管理メニューのユーザーに、Capabilities という項目があると思いますのでクリックします。
デフォルトで購読者の権限が色々と表示されていると思いますので、その中から「Read private posts」にチェックを入れて保存します。
以上の設定が完了すれば、会員向けの投稿を作成するには、投稿時の公開ボックスにある公開状態を非公開にして保存するだけです。非公開にすると、ログインしている会員のみこの記事を閲覧できるようになります。ログインしていない会員にも閲覧させたい場合は、通常通り公開状態を一般公開にしておいてください。
3.会員向けの投稿をタイトルや抜粋など一部のみ公開し、本文は会員以外には閲覧させない
2番目の方法とよく似ていますが、場合によって会員向けのコンテンツのタイトルや抜粋は公開し、本文は公開しない、といったコンテンツの公開方法もあります。よくあるのが、有料の記事配信サイトで、記事の一部を閲覧させ、続きが気になる人は会員になるように促すといった形です。
この方法はテーマの改良が少し必要になります。考え方としては、オリジナルのテンプレートを使用し、ログインしているかどうかの判定を加えて、ログインしている場合は本文をそのまま表示し、ログインしていない場合は抜粋のみを表示しログインまたはユーザー登録を促す内容を表示する、というものです。
ページにはカスタムテンプレートの機能がデフォルトで用意されていますが、投稿では独自のテンプレートが使用できないので、Single Post TemplateまたはCustom Post Templateを使用します。single.phpまたはpage.phpをコピーしてmember.phpなどとしてカスタムテンプレートを作成します。
the_content()の部分を探し、ログインしているかどうかを判定する関数であるis_user_logged_in()でログイン済みの場合は本文を表示し、ログインしていない場合は一部のみを表示するといった記述をします。カスタムテンプレートが完成すれば、あとは投稿時に作成したテンプレートを適用するようにするだけです。
なお、フロントエンドユーザー管理プラグインの会員制ページ条件の機能を利用すれば上記を簡単に実装できます。会員限定ページを簡単作成 – フロントエンドユーザー管理プラグインの活用事例5をご覧ください。
まとめ
以上、簡単ではありますがフロントエンドユーザー管理プラグインを使用してWordPressで会員、メンバーのみが閲覧できるサイトの構築方法を解説させていただきました。実際に上記を参考にやってみていただければ、いかに簡単に会員制サイト、メンバーサイトが構築できるかがお分かりいただけると思います。
フロントエンドユーザー管理プラグインは、有料のプラグインとなりますが、様々な用途に汎用的にご利用いただけますので、会員制サイトの構築をご検討の方はぜひお試しください。