Roles and Capabilities – Documentation – WordPress.org

Roles and Capabilities

In this article

Summary of Roles

WordPress uses a concept of Roles, designed to give the site owner the ability to control what users can and cannot do within the site. A site owner can manage the user access to such tasks as writing and editing posts, creating Pages, creating categories, moderating comments, managing plugins, managing themes, and managing other users, by assigning a specific role to each of the users.

Roles

A Role defines a set of tasks a user assigned the role is allowed to perform. For instance, the Super Admin role encompasses every possible task that can be performed within a Network of virtual WordPress sites. The Administrator role limits the allowed tasks only to those which affect a single site. On the other hand, the Author role allows the execution of just a small subset of tasks.

Super Admin

Multisite Super Admins have, by default, all capabilities. The following Multisite-only capabilities are therefore only available to Super Admins:

Administrator

The capabilities of Administrators differ between single site and Multisite WordPress installations. All administrators have the following capabilities:

Editor

Author

Contributor

Subscriber

Special Cases

The following capabilities are special cases:


define( 'ALLOW_UNFILTERED_UPLOADS', true );

With this constant defined, all roles on a single site install can be given the unfiltered_upload capability, but only Super Admins can be given the capability on a Multisite install.

Capability vs. Role Table

Note that the capabilities of Administrators differs between single site and Multisite WordPress installations.

Capability Super Admin Administrator Editor Author Contributor Subscriber
create_sites yes x x x x x
delete_sites yes x x x x x
manage_network yes x x x x x
manage_sites yes x x x x x
manage_network_users yes x x x x x
manage_network_plugins yes x x x x x
manage_network_themes yes x x x x x
manage_network_options yes x x x x x
upload_plugins yes x x x x x
upload_themes yes x x x x x
upload_network yes x x x x x
upgrade_network yes x x x x x
setup_network yes x x x x x
activate_plugins yes yes (single site or
enabled by
network setting)
x x x x
create_users yes yes (single site) x x x x
delete_plugins yes yes (single site) x x x x
delete_themes yes yes (single site) x x x x
delete_users yes yes (single site) x x x x
edit_files yes yes (single site) x x x x
edit_plugins yes yes (single site) x x x x
edit_theme_options yes yes x x x x
edit_themes yes yes (single site) x x x x
edit_users yes yes (single site) x x x x
export yes yes x x x x
import yes yes x x x x
install_plugins yes yes (single site) x x x x
install_themes yes yes (single site) x x x x
list_users yes yes x x x x
manage_options yes yes x x x x
promote_users yes yes x x x x
remove_users yes yes x x x x
switch_themes yes yes x x x x
update_core yes yes (single site) x x x x
update_plugins yes yes (single site) x x x x
update_themes yes yes (single site) x x x x
edit_dashboard yes yes x x x x
customize yes yes x x x x
delete_site yes yes x x x x
moderate_comments yes yes yes x x x
manage_categories yes yes yes x x x
manage_links yes yes yes x x x
edit_others_posts yes yes yes x x x
edit_pages yes yes yes x x x
edit_others_pages yes yes yes x x x
edit_published_pages yes yes yes x x x
publish_pages yes yes yes x x x
delete_pages yes yes yes x x x
delete_others_pages yes yes yes x x x
delete_published_pages yes yes yes x x x
delete_others_posts yes yes yes x x x
delete_private_posts yes yes yes x x x
edit_private_posts yes yes yes x x x
read_private_posts yes yes yes x x x
delete_private_pages yes yes yes x x x
edit_private_pages yes yes yes x x x
read_private_pages yes yes yes x x x
unfiltered_html yes yes (single site) yes (single site) x x x

Capabilities

Side Editor Capabilities

The Site Editor is available when a block theme is active and allows users to manage site templates, template parts, styles, navigation, and content from a single editing interface.

Access to Site Editor features depends on the capabilities assigned to the current user. The following capabilities may be relevant when creating a custom role that needs access to the Site Editor:

Capability Description
edit_theme_options Grants access to the Site Editor and its navigation menu.
edit_posts Allows users to edit posts, which is required for managing templates.
edit_pages Allows users to edit pages, which is required for managing page templates.
edit_others_posts Allows users to edit others’ posts, which is required for managing templates.
read Allows users to view the site, which is required for previewing changes.
upload_files Allows users to upload media, which is required for adding images and media.

edit_theme_options is the primary capability used by WordPress when determining whether a user can access and manage templates through the Site Editor. Other capabilities may be required depending on which types of content the user is expected to edit.

Creating a Custom Site Editor Role

A custom role can be created with the capabilities required for the tasks the user should be able to perform. For example:


Capabilities can also be added to an existing role by using WP_Role::add_cap():


When adding capabilities to an existing role, consider the broader permissions that each capability provides. For example, edit_theme_options is not limited exclusively to the Site Editor and may grant access to other theme-related administrative functionality.

REST API Capability Checks

The Site Editor uses the WordPress REST API to retrieve and update templates, template parts, pages, navigation data, patterns, and other information.

For template and template-part endpoints, WordPress checks whether the current user has the edit_theme_options capability. A user without this capability may receive an authorization error when the Site Editor attempts to access these endpoints.

Other REST API endpoints can perform their own capability checks. For example, endpoints dealing with posts or pages may require capabilities such as:

If a custom role can open the Site Editor but some sections fail to load or save, check the browser’s developer tools for REST API requests returning 401 Unauthorized or 403 Forbidden responses.

The REST API response will often include an error code and message indicating the type of permission that failed. This can help identify whether the role is missing a capability required by that particular endpoint.

Only grant the capabilities required for the tasks the role is intended to perform.

Switch Themes

Edit Themes

Edit Theme Options

While this capability grants access to the Site Editor, additional capabilities may be required for full functionality. For example, users may also need edit_posts, edit_pages, and edit_others_posts to fully utilize the Site Editor’s features.

Install Themes

Activate Plugins

Edit Plugins

Install Plugins

Edit Users

Edit Files

Manage Options

Moderate Comments

Manage Categories

Manage Links

Upload Files

Import

Unfiltered HTML

Edit Posts

Edit Others Posts

Edit Published Posts

Publish Posts

Edit Pages

Read

Publish Pages

Edit Others Pages

Edit Published Pages

Delete Pages

Delete Others Pages

Delete Published Pages

Delete Posts

Delete Others Posts

Delete Published Posts

Delete Private Posts

Edit Private Posts

Read Private Posts

Delete Private Pages

Edit Private Pages

Read Private Pages

Delete Users

Create Users

Unfiltered Upload

Edit Dashboard

Customize

Delete Site

Update Plugins

Delete Plugins

Update Themes

Update Core

List Users

Remove Users

Add Users

Promote Users

Delete Themes

Export

Edit Comment

Create Sites

Delete Sites

Manage Network

Manage Sites

Manage Network Users

Manage Network Themes

Manage Network Options

Manage Network Plugins

Upload Plugins

Upload Themes

Upgrade Network

Setup Network

Resources

Plugins