atshift Members
atshift Members 使い方ガイド
会員登録を受け付ける前に、ページ・認証・メール・投稿権限・公開範囲を順番に確認します。無料版1.0の現行実装を対象とした導入ガイドです。
01 / REQUIREMENTS
動作環境と導入前の確認
WordPress 6.6以上、PHP 8.1以上、InnoDB、シングルサイトが必要です。
本番ではHTTPSを使用します。HTTPを許容するのはWordPressの環境種別がlocalの場合だけです。初回のWordPress.org公開は準備中です。配布開始を確認してから、まずステージングへ導入してください。
メール送信とWP-Cronが動作することを確認します。確認メールはキューから処理するため、Cronが止まっていると登録が進みません。Members自体はメール配送サービスを提供しません。
会員用ページ、ログイン中のページ、会員専用ファイルの配信経路を、キャッシュプラグイン・サーバー・CDNの共有キャッシュから除外します。別の登録フォームやAPIが有効な場合は、その経路も別途確認します。
確認項目
- 本番データのバックアップと検証用環境
- 対象ドメイン用のTurnstileキーと外部通信の許可
- メール到達、Cron、キャッシュ除外
- Freeform Loginのパスキー連携時はPHP 8.3以上などの追加要件
02 / ACCOUNT PAGES
会員用ページを準備する
登録、会員情報、情報変更、パスワード再設定、退会の5ページを用意します。
管理者としてMembersを開き、会員用ページの作成機能からページを準備します。各ページに対応するショートコードがあり、公開後のURLを実際に開いて確認してください。
会員ホームは任意で下書きを生成できます。既存の作成済みページは上書きせず、サイトのフロントページやログイン後の移動先も自動変更しません。会員一覧を表示したい場合は、後から別途設定します。
手順
- 5つの用途に対応するページを作成・確認する
- 会員情報と情報変更ページを公開し、設定されたURLを確認する
- 必要なら会員ホームの下書きを編集して公開する
- ログイン前・有効な会員・利用停止の会員で表示を確認する
03 / REGISTRATION
登録の受付と不正利用対策
メール確認を基本にし、運営者承認は必要なサイトだけで追加します。
登録設定でCloudflare Turnstileのサイトキーとシークレットキーを保存します。サーバー定数で設定済みの場合はそちらが優先されます。本番ではCloudflareのテストキーは使えません。
利用者はメールアドレスを送信し、届いた確認リンクから登録を進めます。確認後にユーザー名、パスワード、設定されたプロフィール項目を入力します。現行のユーザー名は英数字・ピリオド・ハイフン・アンダースコアの1〜60文字です。
送信元・ネットワーク・ブラウザ・メールアドレス等の回数制限と、漏えいパスワードの確認を組み合わせます。Turnstileの検証失敗時は登録要求を進めません。Pwned Passwordsが利用不能の場合も、標準設定では新しいパスワードを受け付けません。
承認を無効にしている場合、登録処理を完了すると有効な会員になります。有効にすると承認待ちになります。防御機能は不正利用を抑えるためのもので、WAFやサーバー保守、運用上の監視を置き換えるものではありません。
手順
- 実際に使用するドメイン用のキーを設定する
- 承認の有無と登録項目を決める
- テスト用メールアドレスで確認メールと登録完了を確認する
- 重複アドレス・期限切れリンク・利用停止時の動作も確認する
04 / INTEGRATIONS
プロフィールとログインを連携する
Members単体で始め、必要な機能を任意連携で追加します。
単体では必要なWordPress標準プロフィール項目を選択できます。atshift User Profile Fieldsの対応する本人用フォーム連携がある場合は、Members側の単体項目よりatshift User Profile Fieldsの設定を優先します。対応する並び順・グループ・条件分岐を使い、管理専用項目は会員の入力対象にしません。
分類を使った投稿・一覧の条件には、対応するatshift User Profile Fields Proの分類連携が必要です。分類データや連携がなくなった場合に、制限を一般公開へ広げる前提では運用しないでください。
Freeform Loginと連携すると、本人のアカウント編集画面からパスキーを管理できます。atshift User Profile Fieldsがなくても利用でき、パスキーの利用可否はFreeform Login側の環境条件と設定に従います。
確認項目
- 連携候補: User Profile Fields / Pro 1.1.3、Freeform Login 2.3.3以降の対応実装
- atshift User Profile Fields連携中の画像プロフィール項目はURL入力で、管理画面メディアピッカーとは異なる
- プリセットの適用は任意。既存項目・値を置換するJSON読み込みと混同しない
- 実機でのパスキー登録・ログインは採用環境で確認する
05 / POSTING
投稿できる範囲を決める
投稿タイプごとに、許可する会員を設定します。
Membersの投稿設定には、WordPressの通常エディターと権限判定に対応する投稿タイプを表示します。新しい投稿タイプは自動作成せず、既存の名称やURLも変更しません。初期状態では通常の「投稿」を有効な会員に許可し、固定ページなどは許可しません。
許可すると本人のコンテンツの作成・公開・編集・削除ができます。他人の記事編集や会員管理の権限は与えません。Membersのサービス用ページも会員の編集対象ではありません。
投稿権限と閲覧制限は別です。通常の公開投稿は公開のままで、投稿権限を取り消しても既存記事の公開範囲は自動変更しません。投稿を許可する前に、どの内容を公開する運用かを決めてください。
確認項目
- 全会員・許可しない・対応する分類の会員から設定
- 下位分類を含める設定には階層情報を提供する連携が必要
- 独自の権限処理を使う第三者プラグインは個別の連携確認が必要
06 / DIRECTORY
会員一覧は必要な場合だけ公開する
初期状態では無効です。ショートコードを置くだけでは表示しません。
会員一覧の設定で、一般公開・有効な会員・サイト運営者・指定分類の会員から閲覧範囲を選びます。掲載対象の分類と、表示名・本人の所属・自己紹介のうち掲載する項目を指定します。
個別のユーザーを一覧から除外できます。除外は分類条件より優先しますが、アカウントの利用や権限は変えません。一般公開を選んでも、元の非公開プロフィールページを公開するわけではありません。
ログイン名・メールアドレスを専用項目として掲載しませんが、表示名や自己紹介などに本人が書いた個人情報には注意が必要です。掲載目的と公開範囲を確認してから有効化してください。
[atshme_member_directory heading_tag="h3" per_page="20"]
07 / PRIVATE FILES
会員専用の保存先を用意する
公開領域外に、WordPressが読み書きできる専用ディレクトリを準備します。
保存先のディレクトリは管理者が先に作成します。Membersの保存先設定で、WordPressを含む公開ディレクトリと、それとは別の非公開ディレクトリを指定します。サーバー定数での設定も可能です。
NASやファイルサーバーはWordPressサーバーへ事前にマウントし、サーバー上の絶対パスで指定します。プラグインがNASへの接続を構築したり、クラウドストレージへ送信したりする機能ではありません。
保存先が利用可能になると、対応するメディア操作で「一般公開」と「会員のみ」を選べます。会員専用ファイルは配信のたびに会員状態と親記事の閲覧権限を確認します。公開済みファイルは自動で移動・非公開化しません。
確認項目
- 公開用URLやサーバーのAliasから非公開ディレクトリへ到達しないことを確認
- ログアウト・利用停止・閲覧権限なしの状態でファイルを取得できないことを確認
- 保存先の障害時に公開保存へ切り替えないことを確認
- 既存の会員専用ファイルがある場合、保存先変更には事前の移行が必要
08 / BEFORE LAUNCH
受付開始前の最終確認
管理者だけでなく、一般会員と未ログインの両方で試します。
確認メール、パスワード再設定、メールアドレス変更、会員の停止・再開、投稿、非公開添付、一覧、退会を一通り確認します。退会テストは削除してよいテストアカウントとデータだけで行ってください。
ローカル検証は本番での到達性や性能を保証しません。実メール到達、実機パスキー、実NAS/VPN、大規模な利用負荷、独自のAPI・SEO・キャッシュ製品との組み合わせは、採用環境で確認します。
確認項目
- 意図しない一般公開がない
- 会員へ管理者相当の権限を与えていない
- 外部サービス利用と個人情報の取扱いを案内している
- Webサーバー・アクセス解析のログへ確認トークンを残さない
- 問い合わせ窓口とメール不達・サービス停止時の対応を決めている
WORDPRESS PLUGINS BY @SHIFT
atshift Membersを、
サイトの運用へ。
まずはステージング環境で、実際の運用に合うかを確認してください。