BLOG

  1. HOME
  2. ブログ
  3. WEB制作・デザイン
  4. WordPress・その他CMS
  5. 簡易的な会員サイトをWordPressで構築する方法
by ウラカワ ウラカワ

簡易的な会員サイトをWordPressで構築する方法

簡易的な会員サイトをWordPressで構築する方法

こんにちは、ここ数週間でPlayStation 5、iPad air、Oculus Quest 2と魅力的なガジェットが次々発表されて、どれを買うか悩みまくっているウラカワです。

さて、今回はWordPressを簡易的な会員サイトとしてカスタマイズする方法をご紹介します。

  • 会員登録なし
  • 一部領域(もしくは全部)はログイン後に閲覧可
  • ロール・権限毎にコンテンツの内容を変更
  • ロール・権限毎にアクセス可能な範囲を変更

といった感じで、管理者が発行したアカウントでログインさせるだけのような、会員機能プラグインを使うほどでもない場合もありますよね。

WordPressは基本的な機能を既に持っているので、上手く活用すると簡単に実現することが出来ます。

ログイン・ログアウト

ログインフォーム

デフォルトのログインページではなく、特定のページにログインフォームを表示したい場合は wp_login_form() を使います。

そのままだとエラーテキストがなかったり、ID・パスワードが空の場合にデフォルトのログインページにリダイレクトされてしまうので、その対策を行います。

functions.phpに以下を記述。

ログイン機能に制限をかけたり、拡張したりするプラグインを導入していると、このままだと上手くいかない場合があるので注意が必要です。

ログアウトボタン

wp_logout_url() を使います。引数にリダイレクト先が指定可能です。

ログイン・ログアウト時のリダイレクト

先程の wp_login_form(), wp_logout_url() にリダイレクト指定しても良いのですが、以下のように login_redirectlogout_redirect フックを利用することでロール・権限によってリダイレクト先を変えることが可能です。

ロール・権限

ロール名の変更

グローバル変数 $wp_roles を上書きする形で既存の「管理者」「編集者」「投稿者」「購読者」という文字を変更可能です。

権限の調整

get_role() でロールの権限を取得し、remove_cap(), add_cap() で一部権限(例:投稿の削除権限)だけ追加、削除といったことが可能です。

権限一覧を確認しつつ調整しましょう。

管理画面の調整

管理画面にCSSを読み込む

権限指定だけではコントロール不可なUIの調整

管理画面内のUIを消したりする場合、CSSでの調整が必要な場合があります。

以下のようにするとbodyにロール毎のclassが付与されるようになるため調整が楽になります。

管理画面の制限

管理画面自体へのアクセスを制限することが可能です。

何の判定も行わないままリダイレクトを指定すると管理画面にアクセス不能になるので注意が必要です。

管理画面の特定ページを制限

管理画面の特定ページだけの制限も可能です。

リダイレクトも可能ですがエラーを表示した方が分かりやすいですね。

管理バーの削除

特定ロール・権限だけヘッダーの管理バーを強制的に削除することが可能です。

管理バーのカスタマイズ

add_menu(), remove_menu() を使うことでロール・権限に合わせて調整可能です。

サイドバーのカスタマイズ

add_menu_page(), remove_menu_page() を使うことでロール・権限に合わせて調整可能です。

ページの制限

特定ページの制限

is_user_logged_in(), current_user_can() でログイン状態を判定可能です。

特定コンテンツの制限

ページ内のコンテンツ部分で、ページ制限と同様に is_user_logged_in(), current_user_can() を使って判定することでコンテンツを制限したり、内容を変えたりすることが可能です。

最後に

WordPressの管理画面はロール・権限毎に不要なものを消していく作業が多い印象があります。

特にメニューは非表示にしただけだと、ある程度知識のあるユーザーが直接ページURLを打ち込む可能性もあるので、そのあたりにも気をつけたいですね。

マグネッツとは?
福岡でWEB制作や中小企業様の集客支援などを行っている会社です。
新着情報配信中!
商用利用OK&無料!総合素材サイト|ソザイング
ページの先頭に戻る