本ページは広告が含まれています。気になる広告をクリック頂けますと、サーバ運営費になります(^^
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で保存しなおす必要があります。
2017/5/26追記
Documentation ⇒ Example から、定型フォーマットCSVファイルをダウンロード可能です。import.csv ファイルをダウンロードする事ができます。
user_login | user_email | user_pass | first_name | last_name | display_name | role | custom_usermeta_1 | custom_usermeta_2 |
ユーザ名 | パスワード | 名 | 姓 | 表示名 | 権限 | ユーザメタ1 | ユーザメタ2 |
このフォーマットにユーザを列挙する事で、一括登録が可能になります。
CSVで登録するユーザを一律権限を割り振りたい時には、取り込む際のRoleに必要な権限をチェックします。例えば、投稿者で登録したい場合はAuthorをチェックして取り込みます。
また、取り込むと、取り込んだユーザの一覧が出てきますので、ちゃんとユーザが取り込まれているかを確認した方がいいです。実際使い始める時に、ユーザがいないなどとなると、具合が悪いです。
ユーザ権限を編集し、新しく権限を作成する
User Role Editor
デフォルトのユーザ権限のみでなく、新しくユーザ権限を作成します。
デフォルトでは、管理者、購読者、投稿者、寄稿者、編集者の5種類ですが、自由に権限を設定する事が可能です。
かなり細かく権限をつける事が出来ますが、最初は英語なので設定しにくいです。
user-role-editor-ja.mo
のみダウンロードでOK。WordPressディレクトリ内のこちらに配置(コピーします)
wp-content/languages/plugins
あともうひと手間。「権限を可読言語で表示」にチェックを入れると日本語で表示されます。
WordPress権限解説(基本グループ)
管理者:最も権限が強いユーザーで、ワードプレスの全ての操作権限を持ちます。
編集者:ユーザーに関する設定変更や生成、ワードプレス本体の設定等以外の、ページや投稿に関する全ての権限を持っている。
投稿者:自分で生成した記事の変更や削除、公開をする事ができる。またメディアのアップロードもする事が可能。
寄稿者:寄稿者は投稿を作る事はできるが、それを公開する事ができない。またメディアをアップロードする事もできない。
購読者:いかなる変更も加える権限を持たない。ただ、購読者はサイトが更新されたときにそれを知る事ができる。
User Role Editorはこの基本グループを元にさらに権限の追加削除を細かく設定できます。
設定例
edit_pages にチェックを入れると固定ページの編集が可能になる
edit_published_pagesにチェックを入れると公開済みの固定ページが編集可能になる。逆説的に、これにチェックを入れておかないと、公開すると編集できなくなる。
ユーザがアクセスできる投稿、固定ページ、カテゴリを管理する
User Access Manager
グループを作成し、投稿、固定ページ、カテゴリにアクセス権を割り振る事ができます。ただ、このグループ作成がミソで、グループに割り当てられるのはRoleです。権限でくくられた人をグループに割り当てる事ができます。
User ⇒ Role ⇒ Gloup ⇒ 投稿、固定ページ、カテゴリへのアクセス割り当て
という事になります。基本グループだけだと5種類のみの管理という事になりますが、User Role Editorを利用する事で無限にRoleを作成し、それをグループ化して公開非公開の管理ができるようになります。
例1 カテゴリー1、カテゴリー2をそれぞれ表示できるグループを作成する
カテゴリー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を 編集者のコピーとして作成)
2.ユーザーを一括登録する
Import From CSVにて、ユーザを一括登録する。
cat1_testuser01,cat1_testuser02,cat1_testuser03,cat2_testuser01,cat2_testuser02,cat2_testuser03を一気に作成
上記手順1で作成したロールの利用可能
※日本語を利用する場合、Excelでは文字コードがSJISになって文字化けしてしまう。アップする前にUTF8にする事
取り込んだ後、権限グループが自分が指定した通りになっているかユーザ一覧にて確認する
3.グループ作成
cat1_roleに対応するCat1_Grpを作成
Cat2_Grpも同様に作成
4.カテゴリー作成
カテゴリー1に Cat_Grpを割り当てて作成する
カテゴリー2も同様に作成
5.ユーザでログインし、表示されるカテゴリーが正しいか確認する。
cat1_testuser01-03 ユーザでログインすると、カテゴリー1に投稿ができる。また、カテゴリー2は表示されない。
cat2_testuser01-03 ユーザでログインすると、カテゴリー2に投稿ができる。また、カテゴリー1は表示されない。
例2 グループのみ割り当て(ユーザに割り当てられたroleに従う)
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を投稿者とすれば、投稿者権限になり、編集者権限にすれば編集者権限で入る事になる
例3 他人のロール機能を使って複数のroleを割り当てる
カテゴリー1、2を表示、閲覧、投稿、編集可能
ユーザ cat1_testuser01,cat1_testuser02,cat1_testuser03
Role(編集者ベース) cat1_role
Role(編集者ベース) cat2_role
カテゴリー2を表示、閲覧、投稿、編集可能(カテゴリー1は表示できない)
ユーザ cat2_testuser01,cat2_testuser02,cat2_testuser03
Role(編集者ベース) cat2_role
Group cat2_grp
他人のロール機能を使ってロールを割り当てると、それに紐づいてそのロールに割り当てられているグループも設定される。ロールで許可されている権限に従って投稿、編集なども可能になる。
例4 特定カテゴリのみ投稿可能なユーザを作成する
特定カテゴリのみ投稿・編集・削除が可能なユーザを作成します。固定ページは作成も、編集もできず、自分が所属するグループが割り当てられているカテゴリのみ投稿・編集・削除が可能になります。
ユーザ:test
Role(編集者ベースおよびカスタマイズ):test_role
ページと書かれた権限は全てチェックを外します。また、画像ファイルもあまり扱ってほしくなければファイルアップロード権限も外します。投稿に関する権限にのみチェックを入れます。
Group: g_test(r_test権限を割り当て)
※Group作成時ReadAccess権 allにすると、カテゴリに権限がない人も見る事が可能になります。only group usersにすると、カテゴリに割り当てたグループのRoleに登録されている人しか見る事ができなくなります。
testユーザに、権限:r_testを割り当て、グループ:g_testを割り当てます。
投稿⇒カテゴリー にて、編集させたいカテゴリーを選択し、Set up user groupにg_testを割り当てます。
これで、固定ページは追加・編集する事ができず、指定のカテゴリのみ編集・投稿可能なユーザができます。また、Full accessのカテゴリが存在すると、そのカテゴリの編集は可能になるので注意してください。
※特にグループの割り当てられていないページ、投稿(カテゴリ)は閲覧可能になります。
例5 特定固定ページのみ編集可能なユーザを作成する
ユーザに、特定固定ページの編集権限を与えます。固定ページを開き、右下に出てくるグループを割り当てます。
特定固定ページを編集可能なのは特定のユーザ、閲覧は全てのユーザに行わせたい場合は、Manage user user groupsにてそのグループのユーザ権限を
Read access: all
Write Access:only group users
とします。
例6 ユーザにアイキャッチ画像を設定させたい。メディアを利用させたい。
アイキャッチや、メディアによって画像の貼り付けなどをさせたい場合は、User Role Editorにて
ファイルアップロードにチェックを入れます。
※ただし、メディアへのアクセスを許可すると、すべてのメディアが利用可能になります。メディア内のファイルについてアクセス権限分けをする事は出来ません。
例7 特定のグループのみ投稿・編集、特定のグループ閲覧
イマイチ、このUser Roleとグループを利用したユーザ権限の割り振りはピンと来ていませんが、設定状況と、どのような動作になるかは記録しておこうと思います。
ロールに権限を割り当てる事ができ、グループを指定する事ができます。
グループにはユーザを指定する事ができます。
カテゴリにはグループを指定する事ができます。
Role01 – Grp01
Role02 – Grp02
Role03 – Grp03
Grp01 – UserA,UserB
Grp02 – UserC
Grp03 -UserD
Cat01 – Grp01,Grp02,Grp03
role01の設定(チェックを入れたもの)
delete_others_posts,delete_posts,delete_private_posts,delete_published_posts
edit_others_posts,edit_posts,edit_private_posts,edit_published_posts
manage_links,moderate_comments,publish_posts,read,read_private_posts
upload_files
この設定で、UserAが投稿すると、UserBも編集・削除可能になります。delete_others_posts,edit_others_postsがポイントです。
UserAの投稿はCat01を指定
こうする事で投稿ページは、Grp01,Grp02,Grp03から閲覧可能になります。ここの編集機能が絶妙なのですが、投稿したGrp01に紐づけられるようです。投稿者がGrp01に登録されているUserAだからか、UserAが所属するGrp01に登録されているユーザは編集可能で、それ以外でCat01で紐づいたGrp02,Grp03は閲覧のみ可能な状態となります。うまくできていますよね。
※ただし、UserCのロールにedit_others_postsにチェックが入っている場合、UserAが下書きしているものについては編集できます。公開完了すると編集できなくなります。
作成されたユーザのログイン記録をとる
これも、設定は必要ありません。インストールのみで有効になります。ログインユーザ名、IPアドレス、ブラウザエージェントが記録されます。