WordPressの会員制サイトのユーザ管理とログ取得

WordPressを用い会員制サイトの作成、ユーザ管理について検討します

プラグインを利用してカスタマイズします。

要件としては、カテゴリごとに投稿できる人、閲覧できる人、カテゴリさえ表示されない人というアクセス権を割り振ります。固定ページ、投稿に対しても同じようにアクセス権を割り振る事ができます。ユーザー登録はCSVファイルからの一括読み込みにし、効率よくユーザ管理ができる事を目標にします。さらにログインユーザのみアクセス可能なサイトにします。

Members Only

Import users from a CSV file

User Role Editor

User Access Manager

Crazy Bone(狂骨)

5つのプラグインを利用しユーザ作成は、CSVファイルからの読み込みにより、一括登録します。また、どのユーザでアクセスがきたのかログも取得します。

Membaers Only

設定は簡単で、基本的には Members Only? にチェックを入れるだけです。

Import users from a CSV file

CSVファイルからユーザの一括登録ができる。WordPress標準の権限分けにも対応する。権限表記role項目は「administrator(管理者)」「editor(編集者)」「author(投稿者)」「contributor(寄稿者)」のいずれか。
日本語を入れて登録してみたが、日本語が反映されず残念と思ったら、Shift JISが対応していない。UTF-8に保存しなおして読み込ませたらすべて反映された。CSVの取り扱いは普通Excelでやりますよね?保存するとCSVになるので注意。基本的にExcelでCSV保存の際は、文字コードの変更に対応していないので、保存されたCSVをUTF-8で保存しなおす必要があります。

ImportUsers01

ユーザー ⇒ Import users from CSV file から、定型フォーマットCSVファイルをダウンロード可能です。import.csv ファイルをダウンロードする事ができます。

user_login user_email user_pass first_name last_name display_name role custom_usermeta_1 custom_usermeta_2
ユーザ名 e-mail パスワード 表示名 権限 ユーザメタ1 ユーザメタ2

このフォーマットにユーザを列挙する事で、一括登録が可能になります。

 

User Role Editor

デフォルトのユーザ権限のみでなく、新しくユーザ権限を作成します。

デフォルトでは、管理者、購読者、投稿者、寄稿者、編集者の5種類ですが、自由に権限を設定する事が可能です。

かなり細かく権限をつける事が出来ますが、最初は英語なので設定しにくいです。

こちらから翻訳をダウンロード

user-role-editor-ja.mo

のみダウンロードでOK。WordPressディレクトリ内のこちらに配置(コピーします)

wp-content/languages/plugins

あともうひと手間。「権限を可読言語で表示」にチェックを入れると日本語で表示されます。

UserRoleEditor01

WordPress権限解説(基本グループ)

管理者:最も権限が強いユーザーで、ワードプレスの全ての操作権限を持ちます。
編集者:ユーザーに関する設定変更や生成、ワードプレス本体の設定等以外の、ページや投稿に関する全ての権限を持っている。
投稿者:自分で生成した記事の変更や削除、公開をする事ができる。またメディアのアップロードもする事が可能。
寄稿者:寄稿者は投稿を作る事はできるが、それを公開する事ができない。またメディアをアップロードする事もできない。
購読者:いかなる変更も加える権限を持たない。ただ、購読者はサイトが更新されたときにそれを知る事ができる。

User Role Editorはこの基本グループを元にさらに権限の追加削除を細かく設定できます。

 

User Access Manager

グループを作成し、投稿、固定ページ、カテゴリにアクセス権を割り振る事ができます。ただ、このグループ作成がミソで、グループに割り当てられるのはRoleです。権限でくくられた人をグループに割り当てる事ができます。

User ⇒ Role ⇒  Gloup ⇒ 投稿、固定ページ、カテゴリへのアクセス割り当て

という事になります。基本グループだけだと5種類のみの管理という事になりますが、User Role Editorを利用する事で無限にRoleを作成し、それをグループ化して公開非公開の管理ができるようになります。

 

カテゴリー1を表示、閲覧、投稿、編集可能(カテゴリー2は表示できない)
ユーザ cat1_testuser01,cat1_testuser02,cat1_testuser03
Role(編集者ベース) cat1_role
Group cat1_grp

カテゴリー2を表示、閲覧、投稿、編集可能(カテゴリー1は表示できない)
ユーザ cat2_testuser01,cat2_testuser02,cat2_testuser03
Role(編集者ベース) cat2_role
Group cat2_grp

手順

1.Roleを作成する

User Role Editorにて、ロール追加(cat1_roleとcat2_roleを 編集者のコピーとして作成)

tejun01

2.ユーザーを一括登録する

Import From CSVにて、ユーザを一括登録する。

cat1_testuser01,cat1_testuser02,cat1_testuser03,cat2_testuser01,cat2_testuser02,cat2_testuser03を一気に作成
上記手順1で作成したロールの利用可能
※日本語を利用する場合、Excelでは文字コードがSJISになって文字化けしてしまう。アップする前にUTF8にする事

tejun02

取り込んだ後、権限グループが自分が指定した通りになっているかユーザ一覧にて確認する

tejun03

3.グループ作成

cat1_roleに対応するCat1_Grpを作成

tejun04

Cat2_Grpも同様に作成

4.カテゴリー作成

カテゴリー1に Cat_Grpを割り当てて作成する

tejun05

カテゴリー2も同様に作成

5.ユーザでログインし、表示されるカテゴリーが正しいか確認する。

cat1_testuser01-03 ユーザでログインすると、カテゴリー1に投稿ができる。また、カテゴリー2は表示されない。

cat2_testuser01-03 ユーザでログインすると、カテゴリー2に投稿ができる。また、カテゴリー1は表示されない。

 

Role(購読者ベース)cat0を作成
ユーザ cat1_testuser01,cat1_testuser02,cat1_testuser03,cat2_testuser01,cat2_testuser02,cat2_testuser03

Role(編集者ベース) cat1_role
Group cat1_grp

Role(編集者ベース) cat2_role
Group cat2_grp

グループのみ割り当て
ユーザ cat1_testuser01,cat1_testuser02,cat1_testuser03
Group cat1_grp

グループのみ割り当て
ユーザ cat2_testuser01,cat2_testuser02,cat2_testuser03
Role(編集者ベース) cat2_role
Group cat2_grp

cat0は購読者で、投稿などはできない。cat1_grpをユーザに割り当てても、書き込みはできるようにならない。つまりUser Agent Managerでグループ作成した時に割り当てる権限はその権限者をグループに割り当てる設定であり、そのroleを割り当てる事にはならない。例にで、Role cat0を投稿者とすれば、投稿者権限になり、編集者権限にすれば編集者権限で入る事になる

カテゴリー1、2を表示、閲覧、投稿、編集可能
ユーザ cat1_testuser01,cat1_testuser02,cat1_testuser03
Role(編集者ベース) cat1_role
Role(編集者ベース) cat2_role
tejun06

カテゴリー2を表示、閲覧、投稿、編集可能(カテゴリー1は表示できない)
ユーザ cat2_testuser01,cat2_testuser02,cat2_testuser03
Role(編集者ベース) cat2_role
Group cat2_grp

他人のロール機能を使ってロールを割り当てると、それに紐づいてそのロールに割り当てられているグループも設定される。ロールで許可されている権限に従って投稿、編集なども可能になる。

特定カテゴリのみ投稿・編集・削除が可能なユーザを作成します。固定ページは作成も、編集もできず、自分が所属するグループが割り当てられているカテゴリのみ投稿・編集・削除が可能になります。

ユーザ:test

Role(編集者ベースおよびカスタマイズ):test_role

ページと書かれた権限は全てチェックを外します。また、画像ファイルもあまり扱ってほしくなければファイルアップロード権限も外します。投稿に関する権限にのみチェックを入れます。

UserRoleEditor2

Group: g_test(r_test権限を割り当て)

※Group作成時ReadAccess権 allにすると、カテゴリに権限がない人も見る事が可能になります。only group usersにすると、カテゴリに割り当てたグループのRoleに登録されている人しか見る事ができなくなります。

UserRoleEditor3

testユーザに、権限:r_testを割り当て、グループ:g_testを割り当てます。

投稿⇒カテゴリー にて、編集させたいカテゴリーを選択し、Set up user groupにg_testを割り当てます。

これで、固定ページは追加・編集する事ができず、指定のカテゴリのみ編集・投稿可能なユーザができます。また、Full accessのカテゴリが存在すると、そのカテゴリの編集は可能になるので注意してください。

※特にグループの割り当てられていないページ、投稿(カテゴリ)は閲覧可能になります。

ユーザに、特定固定ページの編集権限を与えます。固定ページを開き、右下に出てくるグループを割り当てます。

固定ページのアクセス権

特定固定ページを編集可能なのは特定のユーザ、閲覧は全てのユーザに行わせたい場合は、Manage user user groupsにてそのグループのユーザ権限を

Read access: all

Write Access:only group users

とします。

アイキャッチや、メディアによって画像の貼り付けなどをさせたい場合は、User Role Editorにて

アイキャッチを設定させたい

ファイルアップロードにチェックを入れます。

※ただし、メディアへのアクセスを許可すると、すべてのメディアが利用可能になります。メディア内のファイルについてアクセス権限分けをする事は出来ません。

Crazy Bone(狂骨)

これも、設定は必要ありません。インストールのみで有効になります。ログインユーザ名、IPアドレス、ブラウザエージェントが記録されます。