WordPressのユーザーの権限を管理したい場合というのはあまり無いかもしれません。
自分のブログ程度だったら自分しか触らないのでユーザーも自分しかいません。
しかしWEB製作者の場合はお客さんが新着情報だけ自分で更新したいなど要望があると思います。
他の部分に関しては変に触られて不具合が出ても困るため機能を制限してユーザー登録が必要になります。
ブログにしても記事作成を外注する場合なんかは必要になりますね。
そんなときは元々WordPressにある機能だけでもいくつか権限がありそれを割り振ることで対応出来ます。
しかし残念なことに細かい設定は出来ないです。
細かい設定をして無駄なリスクを軽減するためには権限を管理するプラグインがありますのでご紹介します。
ちなみに以下説明するプラグインは2つとも権限を管理するプラグインですが若干方向性が異なります。
どちらにしようかな~というものではなく、両方組み合わせることで相乗効果を発揮する感じです。
WordPressの権限を作成するプラグイン「User Role Editor」
「User Role Editor」は既存の権限を編集したり、新しく権限を作成できるプラグインです。
ちなみに権限は英語でロール(Role)って言います。
既存の権限もいくつかありますが、要望によっては不要な機能までついていたりします。
その場合は新しい権限を作って、必要な機能だけ使えるようにします。
User Role Editorのインストール
インストールは簡単で、WordPressの管理画面のサイドメニューより「プラグイン」→「新規追加」をクリック。
右上のキーワード検索フォームで「User Role Editor」と検索。
User Role Editor をインストールして有効化します。
ロールの追加&変更
ロールの追加や変更は、サイドメニューの「ユーザー」→「User Role Editor」から行います。
②で編集する権限を選択し、
③で権限の内容を選択します。
④の更新で新しい内容に書き変わります。
新しく権限を追加する場合は⑤の「権限グループの追加」をクリックします。すると下のような画面が開きます。
新しく追加する権限グループの名前を入力し追加すると、下の画面のように選択できる権限グループに追加されます。
既存の権限グループをベースに新たな権限グループを作成する場合は「コピー元」を選択します。
後は②~④と同様に権限の内容を変更します。
User Role Editor に足りないもの
足りないものと言うか、権限グループの内容がよく分からないですよね(笑)
一応「各権限を概説で表示する」というチェック(下の画像)があり、それにチェックすると権限の一覧が日本語になります。
ここでは確実に不要なものはチェックせずに、それ以外はチェックしておきましょう。
よく分からなければ全部チェック入れておきましょう。
細かい設定は次に紹介する「Adminimize」のほうが便利です。
WordPressの権限の範囲を細かく設定するプラグイン「Adminimize」
「Adminimize」は権限の内容を細かく設定できるプラグインです。
上で紹介した「User Role Editor」でも権限内容を設定できますが、このプラグインはもっと細かく設定できます。
WEB制作やブログ更新を普段から行っている人は問題ないですが、そうで無い人はサイドメニューにたくさんメニューがあると迷ってしまいます。
そんな場合に最小限だけメニューが用意されていると迷わなくて喜んで貰えます。
Adminimizeのインストール
インストールは簡単で、WordPressの管理画面のサイドメニューより「プラグイン」→「新規追加」をクリック。
右上のキーワード検索フォームで「Adminimize」と検索。
Adminimize をインストールして有効化します。
権限の設定
権限内でどの機能が使えるかを設定する方法をです。
管理画面のサイドメニュー「設定」→「Adminimize」をクリック。
「Menu Options」をクリックします。
一番左の列は管理画面のメニューの内容になります。
左から2番目の列から一番右の列までは各権限グループになります。
設定の仕方はメニューに表示しないものにチェックを入れるだけです。
具体的な例は後ほど解説します。
Adminimize に足りないもの
「User Role Editor」では権限を追加したり出来るけど、細かい機能の設定がよく分かりませんでした。(僕だけかもしれませんが)
逆に「Adminimize」は細かい機能の設定はサイドメニューと同じ構成なので分かりやすいですが、新しい権限を追加したりは出来ません。(僕が知らないだけかもしれませんが)
この2つを組み合わせれば比較的簡単に設定出来るように思います。
お問い合わせ履歴だけはお客さんのほうで確認できるようにする
権限管理に関するプラグイン2つをご紹介しました。
2つ組み合わせると色々便利です。
もちろんやりたいことなんてのは案件や製作者によって異なりますのでどちらか1つだけでのプラグインで対応出来る場合もあります。
ただシステムというのは必ずしも自分の想定通りに動いてくれるものではありません。
むしろ想定通りに動かないほうが多いです。
なので実際にやってみます。
最初に断っておきますが、僕は世間一般の優秀なプログラマーと違って優秀ではないです(笑)
今回行う要件は
- お客さんのHPを作ったとき、お問い合わせ履歴だけはお客さんのほうでログインしていつでも確認できるようにしたい。
- 既存の権限は使わず新しい権限を作成する
とします。
まず権限を作成します。
「User Role Editor」のときに追加した「新しいグループ」にお問い合わせの履歴を閲覧する権限を持たせます。
権限の追加までは上で説明した通りです。
そして必要そうな機能にチェックを入れ更新します。
ちょうどFlamingo関連そうなのがあったので全部チェックしました。
ここで大事なことは実際に新しいユーザーを作成し、表示を確認しながら進めることです。
「どれにチェックしたらいいか分からない」なんてのはどんなに優秀なプログラマーでも同じです。
他人が作ったプラグインなので想定通りにならないことが前提です。
「user-a」というユーザーで、権限グループに「新しいグループ」を設定しました。
これでログインしてみると・・・
こんな画面が出てきちゃいました。
ちなみに新しく作ったテストユーザーでログインする場合はChromeならシークレットウィンドウを使うと現在ログインしているユーザーをログアウトしなくてよくて便利です。
そういうことになってしまうから「User Role Editor」で権限設定するのは面倒なんです。
最終的に色々試した結果「ユーザーの編集」と「読み取り権限」にチェックを入れれば「Flamingo」のメニューが表示されることが分かりました。
最初の「Flamingo関連そうなのがあったので全部チェックしました。」は不要でした(笑)
ここまででテストユーザーで管理画面を開くと以下のようになります。
「ダッシュボード」と「プロフィール」はそのままにしておいたほうが後々面倒にならなさそうだし、特に邪魔でもないので残します。
問題(というほどでもないが)は、Flamingoのサブメニューにある「アドレス帳」が不要だということです。
「User Role Editor」では権限のチェックは2つしかしていないのでこれ以上減らせません。
そこで次に使うのが「Adminimize」です。
Flamingoのサブメニューにある「アドレス帳」が不要なので、それにチェックを入れて更新します。
すると、下の画像のようにメニューから「アドレス帳」が消えました。
これで要件を満たすことが出来ました!
まとめ
僕は「User Role Editor」で権限グループを作成し、「Adminimize」で権限の内容を設定するように使っています。
ただ新しい権限を作る必要が無いのであれば「Adminimize」だけで充分です。
WordPressのメニューはプラグインなども絡むとすごく多くなります。
複雑で設定するのが難しいですが、テストユーザーを作って動作確認をしながら設定をすればちゃんと要件通りのメニューを作れるはずです。
がんばってください!
flamingoの表示ができずに困っておりましたが、「ユーザー編集」の許可が必要だったとは…!
大変助かりました、ありがとうございます!
朝から勉強熱心ですね!