
WordPressではユーザーを登録する際に「権限」を設定します。権限とは投稿を作成する、プラグインを追加するといったような、ログインしたユーザーが閲覧・実行できることです。
複数人でサイトを運営する場合やクライアントユーザーもログインするようなサイトの場合、それぞれに適切なユーザー権限を与えることで操作ミスや悪意ある改ざん、情報漏洩などといったリスクを防ぐことができます。
リスクを減らしてサイト運用するためにも権限を適切に設定していきたいところです。
どんな権限がWordPressに用意されていてそれぞれどのようなことができるのか、またユーザー権限のカスタマイズについてメモしています。
どの権限グループにすれば良いのか迷った時に参考にしてみてください。
権限グループの種類と内容
WordPressには「投稿記事を編集する」「テーマを編集する」などたくさんの権限が設定されていて、そのうちのいくつかを割り当てたそれぞれの立場を権限グループと言います。割り当てられたユーザーはその権限グループで許可されていることのみ実行できます。
WordPressの権限グループは、デフォルトで5つの種類に分かれています。
名称(日本語) | 名称(英語・設定用) | 権限 |
---|---|---|
管理者 | administrator | 全ての機能操作が可能 |
編集者 | editor | 全投稿記事の編集・削除・公開が可能 |
投稿者 | author | そのユーザーが作成した記事のみ編集・削除・公開が可能 |
寄稿者 | contributor | 記事の作成・編集が可能で、公開することはできない |
購読者 | subscriber | 記事の閲覧のみ可能 |
この表では上から順にできること少なくなっていき、管理画面の表示メニューも変わります。
WordPressサイトを作成した時に登録される最初のユーザーは、管理者として登録されます。管理者権限を持つユーザーが一人しかいない場合、変更はできません。
この他にマルチサイトの場合のみに追加される「特権管理者」というユーザー権限もあります。マルチサイトの全体的な編集が可能なユーザー権限です。
権限グループの割り当ては役割分担、またそのユーザーの責任範囲として考えていきましょう。
自分一人で運用していたり管理者としてログインできる場合でも、ユーザー権限を分けておくと操作ミスを減らせたり作業がスムーズに行いやすいこともあります。
管理者(administrator)
管理者は投稿の作成・編集はもちろん、プラグインやテーマの追加・削除などWordPressの全ての機能を使用することができます。
あらゆる機能にアクセスできる権限グループとなるので、設定する人は厳選していきましょう。
編集者(editor)
編集者は新規投稿の作成・公開・編集・削除が可能です。カテゴリーやタグなどの管理もでき、他のユーザーが投稿した記事の編集も可能です。リンクの編集、コメントの承認、固定ページの編集もできるので、記事に関することは大体できます。
「他のユーザーが作成した記事」を編集できるのは編集者と管理者だけです。
管理者との違いはプラグインやテーマ設定、ユーザー管理など記事以外のサイト管理に関わる設定についての変更はできない点です。
サイトのコンテンツ管理を任せたい人向けの権限グループです。
投稿者(author)
投稿者は「投稿」の記事の作成・公開、自身が作成した記事の編集・削除ができ、「投稿」に関することに特化した権限が設定されています。固定ページの作成・編集はできません。
カテゴリーやタグは既存のものを使用できますが、新たに作成することはできません。
同期パターン(再利用ブロック)も自分で作成したもののみ利用できます。
他のユーザーが書いた記事をさわることができないので、誤って変更や削除してしまうというミスを防げます。
承認を得ずとも自身で記事の公開や削除ができるので、記事作成において信任できる人に割り当てるようにしましょう。
寄稿者(contributor)
寄稿者は記事の作成や自分が書いた記事の編集ができますが、公開や削除をすることはできません。
公開ボタンをクリックすると「レビュー待ちとして送信」となり、管理者や編集者が改めて公開する形になります。
投稿者と同様、他のユーザーが作成した記事の編集はできません。
またメディアの機能も制限されており、記事に画像を入れることができません。画像の挿入も行なって欲しい場合は投稿者以上の権限グループにするか、権限をカスタムする必要があります。
同期パターン(再利用ブロック)は既存のものでも閲覧のみで使用することができません。
記事を独自判断で公開せずWordPressでテキストのみの記事を作成だけしてもらい他の人がチェック・編集してから公開する、といった流れにしたいユーザーの場合には寄稿者の設定が良いです。
購読者(subscriber)
購読者が管理画面で編集できるのは自分のプロフィールのみです。記事の作成や編集はできずサイト上で見ることしかできません。
購読者は、一般の訪問者は閲覧できずサイト側でログインすると見れるようになるページがある会員制サイトのような形や、公開前の記事の確認だけしてほしい場合に活用できる権限グループです。
権限グループを新しく作ったりカスタマイズすることも可能
投稿者にも固定ページを作ってもらったり、寄稿者が画像設定や公開もできるようにしたり、購読者のユーザー権限の中でもできる範囲を変えたいこともあると思います。
またデフォルトの権限グループの設定は、投稿や固定ページのみといったシンプルなサイトの想定ですが、サイトによってはカスタム投稿を作成することもあります。このカスタム投稿を寄稿者にも投稿者にも見れるようにしたいといった場合もあるでしょう。
こうしたデフォルトのWordPressの構成からサイトをカスタマイズしている場合、権限を変更したり新たに追加する必要も出てきます。
プラグインでカスタマイズ
WordPressのプラグインでユーザー権限をカスタマイズできるプラグインがあります。こちらのプラグインでは既存以外に新しく権限を作成することもできます。
User Role Editor – WordPress プラグイン | WordPress.org 日本語
細かい権限設定ができるので、ユーザー数が増えてきたりサイトを色々カスタマイズしている時などに重宝します。
コードを書いてカスタマイズ
権限グループや権限に関する関数がWordPressには用意されています。このコードを利用して独自に権限操作をすることができます。
【権限や権限グループの追加・削除】
add_cap() | 権限グループに権限を追加。 |
remove_cap() | 権限グループから権限を削除。 |
add_role() | 権限グループを追加。 |
remove_role() | 権限グループを削除。 |
【権限の一例】
記事を見る | read |
記事を書く・編集する | edit_posts |
記事を公開する | publish_posts |
プラグインのインストール | install_plugin |
カテゴリーを編集 | manage_categories |
ユーザー作成 | create_users |
コメント管理 | moderate_comments |
上記で紹介したもの以外にもさまざまな権限が設定できます。設定できる権限一覧は以下のページを参照ください。
既存の権限グループに権限を追加
元々存在する権限グループにある権限を追加・削除する際に使用するのが add_cap()
と remove_cap()
です。
例えば寄稿者の権限グループにメディアファイルのアップロードも許可したい場合、以下のようなコードを記述します。
function custom_user_role() {
$role_contributor = get_role('contributor');
$role_contributor->add_cap('upload_files');
}
add_action('admin_init', 'custom_user_role');
get_role('権限グループ')
で変更したい権限グループを指定、取得した権限グループに add_cap('権限名')
で権限を追加し、アクションフックを利用して登録します。
権限を削除する場合は add_cap
を remove_cap
にします。
新しく権限グループを追加
新しく権限グループを追加したい場合は以下のようなコードを記述します。
function add_user_role() {
$role_editor = get_role('editor');
$new_cap = $role_editor->capabilities;
add_role('my_user_role', '新しい権限グループ', $new_cap);
}
add_action('admin_init', 'add_user_role');
add_role('権限グループ名', '表示名', 機能のリスト(配列));
このコードでは、まず「編集者」の権限グループを取得し、その中に格納されている権限(capabilities)情報を取り出して変数へ格納しています。
他の権限グループの権限を利用するのではなく、一から権限を設定する場合は、機能名を配列で指定します。'機能名' => true,
でその権限が追加されます。
function add_user_role() {
$new_cap = [
'edit_posts' => true,
'read' => true,
'delete_posts' => true,
];
add_role('my_user_role', '新しい権限グループ', $new_cap);
}
add_action('admin_init', 'add_user_role');
【参照】add_role() – Function | Developer.WordPress.org
登録できれば、ユーザーページの権限グループのリストに表示されます。

権限グループを削除
削除する場合は remove_role('権限グループ')
のみでOKです。
function remove_user_role() {
remove_role('subscriber');
}
add_action('admin_init', 'remove_user_role');
権限内容を知ってユーザーに合った最低限の設定にする
ユーザー権限によってできることとできないことを明確にすることができます。複数の人が関わるサイトの場合、全ての人に管理者権限を与えてしまうと関わる人が多くなるほど悪影響を与えてしまう可能性も高くなります。
管理者権限では重要なファイルを編集することもできるため、知識の浅い人が誤って編集してしまうとサイトが見れなくなってしまうことも。
そのユーザーは何をするためにWordPressのログインが必要なのか、ということからそのユーザーに合った最低限の権限を設定していきましょう。