権限
権限(Capability)は、ユーザーがWordPress上で「できること」を示すものです。例えば「投稿ができる」「ファイルのアップロードができる」「テーマの切り替えができる」といったようなものです。
権限は「管理者」などの権限グループに紐付いています。例えば、管理者は設定の管理ができる、WordPress本体の更新(バージョンアップ)ができる、投稿の作成や公開ができる、「寄稿者」は投稿の作成はできるが公開はできない…といった形です。ユーザーは、「管理者」などの権限グループ(役割)の設定をとおして、それぞれの権限が与えられます。
権限グループ
権限グループ(Role)は、ユーザーに与える役割のことです。WordPress標準では、下記の6つの権限グループが使用されます。
権限グループ名 | 内部名 | 意味 |
---|---|---|
特権管理者 | ※ | サイトネットワーク管理機能や他のすべての機能へアクセスできるユーザー |
管理者 | administrator | シングルサイト内のすべての管理機能にアクセスできるユーザー |
編集者 | editor | 他のユーザーの投稿を含むすべての投稿を公開、管理できるユーザー |
投稿者 | author | 自身の投稿を公開、管理できるユーザー |
寄稿者 | contributor | 自身の投稿を編集、管理できるが、公開はできないユーザー |
購読者 | subscriber | プロフィール管理のみ実行できるユーザー |
※特権管理者は、WordPressをマルチサイト化している場合のみ使用されます。内部名はありません
権限の一覧
使用できる主な権限、および権限がどの権限グループに紐付いているかを下記に示します。
※この一覧はRoles and Capabilities « WordPress Codex、およびユーザーの種類と権限 - WordPress Codex 日本語版をもとに、権限の意味と「なにができるのか」を追加し、整形したものです。
権限 | 意味 | できること | 特権管理者 | 管理者 | 編集者 | 投稿者 | 寄稿者 | 購読者 | 備考 |
---|---|---|---|---|---|---|---|---|---|
manage_network | ネットワークの管理 | ◯ | |||||||
manage_sites | サイトの管理 | ◯ | |||||||
manage_network_users | ネットワークユーザーの管理 | ◯ | |||||||
manage_network_plugins | ネットワークプラグインの管理 | ◯ | |||||||
manage_network_themes | ネットワークテーマの管理 | ◯ | |||||||
manage_network_options | ネットワーク設定の管理 | ◯ |
権限 | 意味 | できること | 特権管理者 | 管理者 | 編集者 | 投稿者 | 寄稿者 | 購読者 | 備考 |
---|---|---|---|---|---|---|---|---|---|
activate_plugins | プラグインの有効化 | プラグイン設定画面へのアクセスや操作 | ◯ | ◯ ※ |
※シングルサイト時またはネットワーク設定で有効化 | ||||
create_users | ユーザーの作成 | ユーザー > 新規追加画面へのアクセスや操作 | ◯ | ◯ ※ |
※シングルサイト時 | ||||
delete_plugins | プラグインの削除 | プラグイン(インストール済みプラグイン)画面などからのプラグインの削除 | ◯ | ◯ ※ |
※シングルサイト時 | ||||
delete_themes | テーマの削除 | 外観(テーマ)画面などからのテーマの削除 | ◯ | ◯ ※ |
※シングルサイト時 | ||||
delete_users | ユーザーの削除 | ユーザー一覧画面などからのユーザーの削除 | ◯ | ◯ ※ |
※シングルサイト時 | ||||
edit_files | ファイルの削除 | (現在は使用されていません) | ◯ | ◯ ※ |
※シングルサイト時 | ||||
edit_plugins | プラグインの編集 | プラグイン > プラグインの編集画面へのアクセスや操作 | ◯ | ◯ ※ |
※シングルサイト時 | ||||
edit_theme_options | テーマ設定の編集 | 外観 > カスタマイズ~背景画面へのアクセスや操作 | ◯ | ◯ | |||||
edit_themes | テーマの編集 | 外観 > テーマの編集画面へのアクセスや操作 | ◯ | ◯ ※ |
※シングルサイト時 | ||||
edit_users | ユーザーの編集 | ユーザー一覧画面などからのユーザー情報の編集 | ◯ | ◯ ※ |
※シングルサイト時 | ||||
export | エクスポート | ツール > エクスポート画面へのアクセスや操作 | ◯ | ◯ | |||||
import | インポート | ツール > インポート画面へのアクセスや操作 | ◯ | ◯ |
権限 | 意味 | できること | 特権管理者 | 管理者 | 編集者 | 投稿者 | 寄稿者 | 購読者 | 備考 |
---|---|---|---|---|---|---|---|---|---|
install_plugins | プラグインのインストール | プラグイン > 新規追加画面へのアクセスやインストール | ◯ | ◯ ※ |
※シングルサイト時 | ||||
install_themes | テーマのインストール | 外観 > テーマ の新規追加画面へのアクセスやインストール | ◯ | ◯ ※ |
※シングルサイト時 | ||||
list_users | ユーザー一覧 | ユーザー一覧へのアクセス | ◯ | ◯ | |||||
manage_options | オプションの管理 | 設定画面(一般~パーマリンク設定)へのアクセスや設定 | ◯ | ◯ | |||||
promote_users | ユーザー昇進 | 既存のネットワークユーザーを特定のサイトのユーザーに追加 (マルチサイト) | ◯ | ◯ | |||||
remove_users | ユーザーの除去 | ユーザー一覧でのユーザーの除去 (マルチサイト) | ◯ | ◯ | |||||
switch_themes | テーマの切替 | 外観(テーマ)画面へのアクセスやテーマ切替 | ◯ | ◯ | |||||
update_core | 本体の更新 | 更新画面などからの本体(WordPressのコアパッケージ)の更新や更新数の表示 | ◯ | ◯ ※ |
※シングルサイト時 | ||||
update_plugins | プラグインの更新 | 更新画面などからのプラグインの更新や更新が必要なプラグイン数の表示 | ◯ | ◯ ※ |
※シングルサイト時 | ||||
update_themes | テーマの更新 | 更新画面などからのテーマの更新や更新が必要なテーマ数の表示 | ◯ | ◯ ※ |
※シングルサイト時 | ||||
edit_dashboard | ダッシュボードの編集 | ダッシュボードの追加など※ | ◯ | ◯ | ※wp_add_dashboard_widget()という関数上からしか使われていないようでした |
権限 | 意味 | できること | 特権管理者 | 管理者 | 編集者 | 投稿者 | 寄稿者 | 購読者 | 備考 |
---|---|---|---|---|---|---|---|---|---|
moderate_comments | コメントのモデレート | コメント一覧、投稿編集画面からのコメントの承認や削除 (投稿編集画面のアクセスはedit_postsの権限も必要) | ◯ | ◯ | ◯ | ||||
manage_categories | カテゴリーの管理 | 投稿 > カテゴリー画面へのアクセスや管理 | ◯ | ◯ | ◯ | ||||
manage_links | リンクの管理 | (現在は使用されていません) | ◯ | ◯ | ◯ | ||||
edit_others_posts | 他の投稿の編集 | 他のユーザーが作成した投稿の編集 | ◯ | ◯ | ◯ | ||||
edit_pages | 固定ページの編集 | 固定ページ一覧、固定ページ > 新規追加へのアクセスや編集 | ◯ | ◯ | ◯ | ||||
edit_others_pages | 他の固定ページの編集 | 他のユーザーが作成した固定ページの編集 | ◯ | ◯ | ◯ | ||||
edit_published_pages | 公開されているページの編集 | 固定ページ一覧などからの公開済の固定ページの削除 | ◯ | ◯ | ◯ | ||||
publish_pages | 固定ページの公開 | 固定ページ一覧などからの固定ページの公開 | ◯ | ◯ | ◯ | ||||
delete_pages | 固定ページの削除 | 固定ページ一覧などからの固定ページの削除 | ◯ | ◯ | ◯ | ||||
delete_others_pages | 他の固定ページの削除 | 固定ページ一覧などからの他のユーザーが作成した固定ページの削除 | ◯ | ◯ | ◯ | ||||
delete_published_pages | 公開されている固定ページの削除 | 固定ページ一覧などからの他のユーザーが作成した固定ページの削除 | ◯ | ◯ | ◯ | ||||
delete_others_posts | 他の投稿の削除 | 投稿一覧などからの他のユーザーが作成した投稿の削除 | ◯ | ◯ | ◯ | ||||
delete_private_posts | 非公開の投稿の削除 | 投稿一覧などからの非公開の投稿の削除 | ◯ | ◯ | ◯ | ||||
edit_private_posts | 非公開の投稿の編集 | 投稿一覧などからの非公開の投稿の編集 | ◯ | ◯ | ◯ | ||||
read_private_posts | 非公開の投稿を読む | 非公開の投稿の表示・閲覧 | ◯ | ◯ | ◯ | ||||
delete_private_pages | 非公開の固定ページの削除 | 固定ページ一覧などからの非公開の固定ページの削除 | ◯ | ◯ | ◯ | ||||
edit_private_pages | 非公開の固定ページの編集 | 固定ページ一覧などからの非公開の固定ページの編集 | ◯ | ◯ | ◯ | ||||
read_private_pages | 非公開の固定ページを読む | 非公開の固定ページの表示・閲覧 | ◯ | ◯ | ◯ | ||||
unfiltered_html | HTMLのフィルタリング無効化 | 投稿やウィジェットでHTMLのフィルタリングをしない | ◯ | ◯ | ◯ |
権限 | 意味 | できること | 特権管理者 | 管理者 | 編集者 | 投稿者 | 寄稿者 | 購読者 | 備考 |
---|---|---|---|---|---|---|---|---|---|
edit_published_posts | 公開されている投稿の編集 | 投稿一覧などからの公開済みの投稿の編集 | ◯ | ◯ | ◯ | ◯ | |||
upload_files | ファイルのアップロード | メディア一覧へのアクセスやアップロード / 投稿画面からのメディア追加 | ◯ | ◯ | ◯ | ◯ | |||
publish_posts | 投稿の公開 | 投稿一覧などからの投稿の公開 | ◯ | ◯ | ◯ | ◯ | |||
delete_published_posts | 公開されている投稿の削除 | 投稿一覧などからの公開済の投稿の削除 | ◯ | ◯ | ◯ | ◯ | |||
edit_posts | 投稿の編集 | 投稿一覧、投稿 > 新規追加、コメント、コメントの承認へのアクセスや編集 | ◯ | ◯ | ◯ | ◯ | ◯ | ||
delete_posts | 投稿の削除 | 投稿一覧などからの投稿の削除 | ◯ | ◯ | ◯ | ◯ | ◯ |
権限 | 意味 | できること | 特権管理者 | 管理者 | 編集者 | 投稿者 | 寄稿者 | 購読者 | 備考 |
---|---|---|---|---|---|---|---|---|---|
read | 読む | ダッシュボード、プロフィール画面へのアクセス | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
プログラム上での権限や権限グループの確認
※この項目は開発者向けです。
プログラム上で権限や権限グループを確認したい場合は「current_user_can()
」という関数を使用します。
現在ログイン中のユーザーが特定の権限を持つ場合はtrueを返すため、この関数を使って条件分岐を行うことができます。
1 2 3 |
if ( current_user_can( 'edit_posts' ) ) { // 投稿の編集が可能なユーザーがログイン中の場合のみ有効なプログラムをこの中に記載 } |
1 2 3 |
if ( current_user_can( 'administrator' ) ) { // 管理者がログイン中の場合のみ有効なプログラムをこの中に記載 } |
「ログイン中のユーザーが権限を持っているか」ではなく「ある特定のユーザーが権限を持っているか」を調べる場合には「user_can()
」という関数を使用することができます。
1 2 3 |
if ( user_can( 1, 'edit_posts' ) ) { // ユーザーIDが1のユーザーが投稿の編集が可能なユーザーだった場合に有効なプログラムをこの中に記載 } |
単独では使用しませんが、例えばユーザー一覧データを取得・表示する際に特定の権限を持つユーザーのみ表示を変えたい場合などに効果を発揮します。
更新履歴
- 2016/02/10 remove_usersは「マルチサイト運用時に特定のブログに参加させたユーザーを取り除く(削除はしない)」権限でしたので説明を修正しました。(以前はdelete_usersと同じく「ユーザーの削除」と誤って記載していました)
- 2016/02/06 権限グループに内部名を追加しました。(
current_user_can()
などで使うので、わかりやすいように一覧にしました) - 2016/02/04 初版