2026年5月20日

2026年5月20日

WordPressのユーザー権限グループ一覧|できることの違いと変更方法

WordPress では、ユーザーごとに「権限グループ」(英語では Role)を割り当て、その中に含まれる「権限」(capability)で、できる操作が決まります。権限グループを正しく選ぶと、記事を書くだけの人にプラグインの操作をさせない、といった管理ができます。

この記事の一覧は、wordpress.org の公式ドキュメント「Roles and Capabilities」と WordPress のソースコードで2026年11月時点に確認したものです。

標準の権限グループ

権限グループ(日本語の表示) スラッグ できること
特権管理者 なし(マルチサイトのみ) ネットワーク全体の管理を含むすべての操作
管理者 administrator 1つのサイトのすべての管理機能
編集者 editor ほかのユーザーの投稿も含めて、投稿と固定ページの公開・管理
投稿者 author 自分の投稿の作成・公開・管理
寄稿者 contributor 自分の投稿の作成・管理。公開はできない
購読者 subscriber 自分のプロフィールの管理だけ
  • WordPress をインストールすると、管理者のアカウントが1つ作られます。
  • 特権管理者は、ほかの権限グループのようにサイトごとに割り当てるのではなく、マルチサイトのネットワーク設定(特権管理者の一覧)で決まります。単一サイトでは、管理者が事実上の特権管理者です。
  • 公式ドキュメントでは、権限グループは上下関係ではなく、そのサイトでの役割を表すものとされています。

主な権限の違い

よく問題になる権限を抜き出した表です(〇はその権限を持つ)。

権限(capability) 内容 管理者 編集者 投稿者 寄稿者 購読者
read 管理画面に入り、プロフィールを編集する 〇 〇 〇 〇 〇
edit_posts 投稿を書く・編集する 〇 〇 〇 〇 -
delete_posts 自分の投稿を削除する 〇 〇 〇 〇 -
upload_files メディアをアップロードする 〇 〇 〇 - -
publish_posts 投稿を公開する 〇 〇 〇 - -
edit_published_posts 公開済みの自分の投稿を編集する 〇 〇 〇 - -
edit_others_posts ほかのユーザーの投稿を編集する 〇 〇 - - -
edit_pages / publish_pages 固定ページを編集・公開する 〇 〇 - - -
moderate_comments コメントを承認・管理する 〇 〇 - - -
manage_categories カテゴリーを管理する 〇 〇 - - -
unfiltered_html 投稿に任意の HTML や JavaScript を書ける 〇 〇 - - -
edit_theme_options メニュー・ウィジェット・サイトエディターなど 〇 - - - -
manage_options 「設定」の各画面を変更する 〇 - - - -
activate_plugins プラグインを有効化・停止する 〇 - - - -
install_plugins プラグインをインストールする 〇 - - - -
list_users / promote_users ユーザーの一覧を見る・権限グループを変える 〇 - - - -

寄稿者はメディアをアップロードできない(upload_files が無い)点に注意してください。寄稿者が画像付きの記事を書く場合は、画像を編集者に渡すか、権限を追加します(後述)。

マルチサイトでの違い

マルチサイトでは、各サイトの管理者でも次の権限は持たず、特権管理者だけが使えます。

  • WordPress 本体・プラグイン・テーマの更新(update_core、update_plugins、update_themes)
  • プラグイン・テーマのインストールと削除、ファイルの編集(install_plugins、install_themes、delete_plugins、delete_themes、edit_plugins、edit_themes、edit_files)
  • ユーザーの作成・編集・削除(create_users、edit_users、delete_users)
  • unfiltered_html(マルチサイトでは管理者・編集者も持たない)

権限グループを変更する(管理画面)

  • 1人ずつ変える: 「ユーザー」→「ユーザー一覧」で対象ユーザーの「編集」を開き、「権限グループ」を選んで「ユーザーを更新」を押します。
  • まとめて変える: 「ユーザー一覧」で対象ユーザーにチェックを入れ、上の「権限グループを変更…」から選んで「変更」を押します。
  • 新規ユーザーの初期値: 「設定」→「一般」の「新規ユーザーのデフォルト権限グループ」で決めます。会員登録を受け付けるサイトでは「購読者」のままにしておくのが安全です。

権限グループを確認・変更する(WP-CLI)

# ユーザーの権限グループを確認
wp user get username --fields=ID,user_login,roles

# 権限グループを変更(ほかの権限グループは外れる)
wp user set-role username editor

# 権限グループを追加(既存の権限グループは残る)
wp user add-role username author

# 権限グループを外す
wp user remove-role username author

# 特定の権限グループのユーザーの一覧
wp user list --role=administrator --fields=ID,user_login,user_email

権限グループと権限の一覧も WP-CLI で確認できます。

# サイトにある権限グループの一覧(プラグインが追加したものも含む)
wp role list

# 編集者の権限の一覧
wp cap list editor

# ユーザーが持つ権限の一覧(権限グループ由来のものを含む)
wp user list-caps username

権限を個別に追加・削除する

権限グループの単位では大きすぎる場合は、権限を追加・削除できます。変更はデータベースに保存され、プラグインやテーマを止めても残ります。

# 編集者全員に、メニューとウィジェットの編集を許可する
wp cap add editor edit_theme_options

# 寄稿者全員に、メディアのアップロードを許可する
wp cap add contributor upload_files

# 特定のユーザーだけに権限を追加・削除する
wp user add-cap username upload_files
wp user remove-cap username upload_files

edit_theme_options を編集者に与えると、外観の設定(メニュー、ウィジェット、サイトエディター)も変更できるようになります。与える範囲を確認してから追加してください。

標準の権限グループを初期状態に戻すには、次のコマンドを使います。

# 編集者の権限を初期状態に戻す
wp role reset editor

# 標準の権限グループをすべて初期状態に戻す
wp role reset --all

独自の権限グループを作る

WP-CLI で作る

既存の権限グループをもとに、新しい権限グループを作れます。

# 編集者の権限をコピーして「サイト担当」を作る
wp role create site_manager 'サイト担当' --clone=editor

# 追加で必要な権限を足す
wp cap add site_manager edit_theme_options

# 不要になったら削除する
wp role delete site_manager

コードで作る

add_role() で作った権限グループはデータベースに保存されます。ページを読み込むたびに実行する必要はなく、プラグインの有効化時に1回実行すれば足ります。同じ名前の権限グループがすでにあると add_role() は何もしないため、あとから権限の内容を変えても反映されない点に注意してください。

<?php
/**
 * Plugin Name: Site Manager Role
 */

register_activation_hook( __FILE__, function () {
	add_role(
		'site_manager',
		'サイト担当',
		array(
			'read'               => true,
			'edit_posts'         => true,
			'edit_others_posts'  => true,
			'publish_posts'      => true,
			'edit_pages'         => true,
			'upload_files'       => true,
			'edit_theme_options' => true,
		)
	);
} );

register_deactivation_hook( __FILE__, function () {
	remove_role( 'site_manager' );
} );

wp-content/plugins/site-manager-role/site-manager-role.php として保存し、「プラグイン」画面で有効化します。プラグインを停止すると権限グループは削除されます。その権限グループのユーザーは権限を失うので、停止する前に別の権限グループに移してください。

権限グループを細かく管理したい場合は、管理画面から権限を編集できるプラグイン(User Role Editor など)もあります。

データベースでの保存場所

権限グループの定義は wp_options テーブルの wp_user_roles、ユーザーごとの割り当ては wp_usermeta テーブルの wp_capabilities に保存されています(どちらも接頭辞が wp_ の場合。マルチサイトのサブサイトでは wp_2_capabilities のようにサイトの番号が入ります)。確認だけなら次の SQL で見られます。

SELECT user_id, meta_value
FROM wp_usermeta
WHERE meta_key = 'wp_capabilities';
-- 結果の例: a:1:{s:6:"editor";b:1;}

値はシリアライズされた形式なので、直接書き換えると壊れやすくなります。変更は管理画面か WP-CLI で行ってください。

運用の注意

  • 管理者は必要な人だけにします。記事の執筆だけなら投稿者、ほかの人の記事も直すなら編集者で足ります。
  • 退職や外注の終了などで不要になったアカウントは、削除するか購読者に下げます。
  • WooCommerce などのプラグインは独自の権限グループ(ショップの管理者や顧客など)を追加します。wp role list で確認できます。
  • 権限が少なすぎて作業できない場合は、権限グループを上げるより、必要な権限だけを追加するほうが安全です。

関連する記事として、ユーザーロールと権限をカスタマイズする方法もあります。

まとめ

  • 標準の権限グループは、管理者・編集者・投稿者・寄稿者・購読者の5つで、マルチサイトでは特権管理者が加わります。
  • 変更は「ユーザー一覧」の「権限グループを変更…」か、wp user set-role で行います。
  • 細かい調整は wp cap add / wp user add-cap で権限単位に行い、元に戻すときは wp role reset を使います。

お気軽にご相談ください

お見積りへ お問い合わせへ
▲