ワードプレス会員サイト作成

下記のユーザーのロール構成

独自ロールで

このサイト独自の概念WordPress上の扱い記事閲覧記事作成会員限定コンテンツ閲覧コメント補足
管理者(標準ロール)
会員member(独自ロール)view_member_content などの独自権限を付与する
編集者
投稿者
自分の記事は公開できる
寄稿者
公開できない
非会員購読者(標準ロール)新規登録時の初期ロールとして使用する
権限なし / 未ログインユーザーログイン画面や案内文を表示する

上記の権限を振り分けをどのようにしているか

WordPressでは、各ロールが以下のように複数の権限を持ち、それぞれが基本的に true / false で管理されます。

[
    'read'          => true,
    'edit_posts'    => true,
    'publish_posts' => false,
]

今回追加した「会員」ロールなら、たとえば次の形です。

[
    'read'                => true,
    'view_member_content' => true,
]

なお、通常は false を明示するより、許可する権限だけを true で持たせることが多いです。

sequenceDiagram
    actor User as ユーザー
    participant WP as WordPress
    actor Admin as 管理者

    User->>WP: 会員登録を申請
    WP->>WP: ユーザーを作成
    WP->>WP: ロールをsubscriberに設定
    WP-->>User: 申請受付を通知
    WP-->>Admin: 新規申請を通知

    Admin->>WP: 申請内容を確認

    alt 承認する
        Admin->>WP: ロールをmemberに変更
        WP-->>User: 承認完了を通知
        User->>WP: ログイン
        WP-->>User: 会員限定コンテンツを表示
        User->>WP: コメント投稿
        WP-->>User: コメントを受け付ける
    else 承認しない
        Admin->>WP: subscriberのまま維持、またはユーザー削除
        WP-->>User: 非承認を通知
    end
タイミング通知先対応
ユーザー登録時管理者WordPress標準通知を利用可能
ユーザー登録時ユーザーWordPress標準通知を利用可能
管理者が承認した時ユーザー独自実装が必要
管理者が非承認にした時ユーザー独自実装が必要

WordPressには標準のユーザー登録機能があります。

管理画面の以下を有効にします。

設定 → 一般 → メンバーシップ → だれでもユーザー登録ができるようにする

さらに「新規ユーザーのデフォルト権限グループ」を購読者(subscriber)に設定します。登録フォームはWordPress標準のwp-login.php?action=registerを利用できます。

この設定のみで以下はデフォルトで実装される

ユーザーがフォームから登録https://あなたのドメイン/wp-login.php?action=register

メール受信

メール内のパスワード設定リンク

パスワード設定

wp-admin/profile.phpにリダイレクト

独自実装が必要な機能

機能内容必須
ユーザー登録フォームユーザー自身が会員登録を申請する必須
登録時の非会員設定登録直後のロールをsubscriberにする必須
登録完了通知申請者へ受付メールを送る任意
管理者への申請通知新規登録があったことを管理者へメール通知する任意
会員ロールの追加独自ロールmemberを作成する必須
会員権限の追加view_member_contentなどの独自権限を設定する必須
管理者による承認管理画面でsubscriberからmemberへ変更する必須
承認完了通知承認時にユーザーへメールを送る任意
パスワード再設定パスワードを忘れたユーザーが再設定する必須
会員限定設定投稿や固定ページを会員限定に指定する必須
会員限定本文の制御会員と管理者だけに本文を表示する必須
非会員向け表示ログイン案内や「会員限定」のメッセージを表示する必須
一覧・検索結果の制御限定記事を非会員に表示するか、タイトルだけ表示するか制御する要決定
RSS・REST APIの制御別経路から限定本文を取得できないようにする必須
コメントフォームの制御会員と管理者だけにコメントフォームを表示する必須
コメント投稿時の制御非会員からの直接投稿もサーバー側で拒否する必須
マイページ登録情報や会員状態をユーザーが確認する任意
退会機能ユーザー自身が退会を申請または実行する任意

目次