下記のユーザーのロール構成
独自ロールで
| このサイト独自の概念 | 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の制御 | 別経路から限定本文を取得できないようにする | 必須 |
| コメントフォームの制御 | 会員と管理者だけにコメントフォームを表示する | 必須 |
| コメント投稿時の制御 | 非会員からの直接投稿もサーバー側で拒否する | 必須 |
| マイページ | 登録情報や会員状態をユーザーが確認する | 任意 |
| 退会機能 | ユーザー自身が退会を申請または実行する | 任意 |