WordPress capabilities list (also called “permissions”) are individual privileges that control what users can and cannot do on your website. From edit_posts to manage_options, each capability grants specific access to content, settings, plugins, and more.

Understanding WordPress capabilities is critical for:
- Security: Limiting capabilities prevents unauthorized access and reduces hack risk
- Customization: Create custom roles with exactly the permissions your users need
- Troubleshooting: Fix “permission denied” errors and capability issues
- Development: Build plugins and themes that respect WordPress permissions
This comprehensive guide covers all 50+ default WordPress capabilities, which roles have which capabilities, how to check and modify capabilities programmatically, plugin-added capabilities (like WooCommerce), and security best practices for managing permissions.
Quick Navigation:
- What Are WordPress Capabilities?
- All 50+ Capabilities List
- Capabilities by Role
- How to Check Capabilities
- How to Modify Capabilities
- WooCommerce Capabilities
- Security Best Practices
- FAQ
- Final Thoughts
What Are WordPress Capabilities?
A WordPress capability is an individual permission that grants a specific type of access. WordPress checks capabilities, not roles, when deciding if a user can perform an action.
Capabilities vs Roles: What’s the Difference?
| WordPress Roles | WordPress Capabilities |
|---|---|
| Named groups of permissions (e.g., “Administrator”, “Editor”) | Individual permissions (e.g., edit_posts, manage_options) |
| Assigned to users in the WordPress dashboard | Checked by WordPress code to control access |
| 6 default roles + custom roles | 50+ default capabilities + plugin-added capabilities |
| Easy to understand and manage | Technical, used by developers |
Example: The “Editor” role includes capabilities like edit_posts, publish_posts, delete_posts, and manage_categories. When an Editor tries to publish a post, WordPress checks if they have the publish_posts capability—not whether they’re an “Editor.”
Learn more: WordPress Roles and Permissions: The Complete Guide
How WordPress Checks Capabilities
WordPress uses the current_user_can() function to check if the current user has a specific capability:
if ( current_user_can( 'edit_posts' ) ) {
// User can edit posts
} else {
// User cannot edit posts
}This function returns true if the user has the capability, false otherwise.
All 50+ WordPress Capabilities (Complete List)
Here’s the complete list of all default WordPress capabilities, grouped by function:
Content Capabilities (Posts)
edit_posts— Edit postspublish_posts— Publish postsdelete_posts— Delete postsedit_published_posts— Edit already published postsdelete_published_posts— Delete already published postsedit_others_posts— Edit posts created by other usersdelete_others_posts— Delete posts created by other usersread— Read content (minimum capability for any dashboard access)read_private_posts— Read private postsedit_private_posts— Edit private postsdelete_private_posts— Delete private postsunfiltered_html— Post unfiltered HTML (bypasses KSES filtering)
Pages Capabilities
edit_pages— Edit pagespublish_pages— Publish pagesdelete_pages— Delete pagesedit_published_pages— Edit already published pagesdelete_published_pages— Delete already published pagesedit_others_pages— Edit pages created by other usersdelete_others_pages— Delete pages created by other usersread_private_pages— Read private pagesedit_private_pages— Edit private pagesdelete_private_pages— Delete private pages
Media Capabilities
upload_files— Upload media files (images, videos, documents)unfiltered_upload— Upload any file type (no MIME type restrictions)
Comments Capabilities
moderate_comments— Approve, edit, spam, or delete commentsedit_comment— Edit individual commentsdelete_comment— Delete individual commentsedit_others_comments— Edit comments created by other usersdelete_others_comments— Delete comments created by other users
Plugins & Themes Capabilities
activate_plugins— Activate and deactivate pluginsedit_plugins— Edit plugin code (Plugin Editor)delete_plugins— Delete pluginsinstall_plugins— Install new pluginsupdate_plugins— Update pluginsactivate_themes— Activate themesedit_themes— Edit theme code (Theme Editor)delete_themes— Delete themesinstall_themes— Install new themesupdate_themes— Update themesswitch_themes— Switch between installed themes
User Management Capabilities
create_users— Create new usersdelete_users— Delete usersedit_users— Edit user profileslist_users— View list of userspromote_users— Change user rolesremove_users— Remove users from the site
Site Settings Capabilities
manage_options— Access all site settings (most powerful capability)manage_categories— Manage categories and tagsmanage_links— Manage blogroll links (legacy feature)import— Use the Import toolexport— Use the Export tool
Design & Customization Capabilities
edit_theme_options— Use the Customizercustomize— Access the Customizer (alias for edit_theme_options)
Level Capabilities (Legacy)
level_0tolevel_10— Legacy user levels (deprecated, but still used by some plugins)
Complete guide: WordPress Roles and Permissions: The Complete Guide
WordPress Capabilities by Role (Complete Table)
Here’s which capabilities each default WordPress role has:
| Capability | Administrator | Editor | Author | Contributor | Subscriber |
|---|---|---|---|---|---|
read | ✅ | ✅ | ✅ | ✅ | ✅ |
edit_posts | ✅ | ✅ | ✅ | ✅ | ❌ |
publish_posts | ✅ | ✅ | ✅ | ❌ | ❌ |
delete_posts | ✅ | ✅ | ✅ | ✅ | ❌ |
edit_published_posts | ✅ | ✅ | ✅ | ❌ | ❌ |
edit_others_posts | ✅ | ✅ | ❌ | ❌ | ❌ |
edit_pages | ✅ | ✅ | ❌ | ❌ | ❌ |
publish_pages | ✅ | ✅ | ❌ | ❌ | ❌ |
edit_published_pages | ✅ | ✅ | ❌ | ❌ | ❌ |
edit_others_pages | ✅ | ✅ | ❌ | ❌ | ❌ |
delete_pages | ✅ | ✅ | ❌ | ❌ | ❌ |
delete_published_pages | ✅ | ✅ | ❌ | ❌ | ❌ |
delete_others_pages | ✅ | ✅ | ❌ | ❌ | ❌ |
upload_files | ✅ | ✅ | ✅ | ❌ | ❌ |
moderate_comments | ✅ | ✅ | ❌ | ❌ | ❌ |
manage_categories | ✅ | ✅ | ❌ | ❌ | ❌ |
manage_links | ✅ | ❌ | ❌ | ❌ | ❌ |
manage_options | ✅ | ❌ | ❌ | ❌ | ❌ |
activate_plugins | ✅ | ❌ | ❌ | ❌ | ❌ |
edit_plugins | ✅ | ❌ | ❌ | ❌ | ❌ |
delete_plugins | ✅ | ❌ | ❌ | ❌ | ❌ |
install_plugins | ✅ | ❌ | ❌ | ❌ | ❌ |
update_plugins | ✅ | ❌ | ❌ | ❌ | ❌ |
activate_themes | ✅ | ❌ | ❌ | ❌ | ❌ |
edit_themes | ✅ | ❌ | ❌ | ❌ | ❌ |
delete_themes | ✅ | ❌ | ❌ | ❌ | ❌ |
install_themes | ✅ | ❌ | ❌ | ❌ | ❌ |
update_themes | ✅ | ❌ | ❌ | ❌ | ❌ |
switch_themes | ✅ | ❌ | ❌ | ❌ | ❌ |
create_users | ✅ | ❌ | ❌ | ❌ | ❌ |
delete_users | ✅ | ❌ | ❌ | ❌ | ❌ |
edit_users | ✅ | ❌ | ❌ | ❌ | ❌ |
list_users | ✅ | ❌ | ❌ | ❌ | ❌ |
promote_users | ✅ | ❌ | ❌ | ❌ | ❌ |
remove_users | ✅ | ❌ | ❌ | ❌ | ❌ |
edit_theme_options | ✅ | ❌ | ❌ | ❌ | ❌ |
import | ✅ | ❌ | ❌ | ❌ | ❌ |
export | ✅ | ❌ | ❌ | ❌ | ❌ |
Key: ✅ = Has capability, ❌ = Does not have capability
Complete guide: WordPress Roles and Permissions: The Complete Guide
How to Check WordPress Capabilities
There are several ways to check if a user has a specific capability:
Method 1: current_user_can() Function
The most common way to check capabilities in WordPress:
if ( current_user_can( 'edit_posts' ) ) {
// User can edit posts
echo 'You can edit posts!';
} else {
// User cannot edit posts
echo 'You cannot edit posts.';
}Method 2: Check Specific User’s Capabilities
Check capabilities for a specific user (not just the current user):
$user = wp_get_current_user();
if ( in_array( 'edit_posts', $user->caps ) ) {
// User has edit_posts capability
}Method 3: Check User’s Role Capabilities
Get all capabilities for a specific role:
$role = get_role( 'editor' );
$capabilities = $role->capabilities;
foreach ( $capabilities as $capability => $value ) {
echo $capability . '
';
}Method 4: Check if User Has Specific Role
Sometimes you want to check the role, not individual capabilities:
$user = wp_get_current_user();
if ( in_array( 'editor', $user->roles ) ) {
// User is an Editor
}Complete tutorial: current_user_can Function: Complete Guide
How to Modify WordPress Capabilities
You can add, remove, or modify capabilities using code or plugins:
Method 1: Add Capability to Role (Code)
function add_capability_to_role() {
$role = get_role( 'editor' );
$role->add_cap( 'manage_options' );
}
add_action( 'init', 'add_capability_to_role' );This adds the manage_options capability to the Editor role (not recommended for security!).
Method 2: Remove Capability from Role (Code)
function remove_capability_from_role() {
$role = get_role( 'editor' );
$role->remove_cap( 'edit_pages' );
}
add_action( 'init', 'remove_capability_from_role' );This removes the edit_pages capability from the Editor role.
Method 3: Create Custom Role with Specific Capabilities (Code)
function create_custom_role() {
add_role(
'content_manager',
'Content Manager',
array(
'read' => true,
'edit_posts' => true,
'edit_pages' => true,
'publish_posts' => true,
'publish_pages' => true,
'upload_files' => true,
'manage_categories' => true,
)
);
}
add_action( 'init', 'create_custom_role' );This creates a custom “Content Manager” role with specific capabilities.
Method 4: Using Plugins
Popular role management plugins:
- User Role Editor — Most popular, free, easy to use
- Members — Clean interface, good for beginners
- PublishPress Capabilities — Advanced features for developers
Complete tutorial: WordPress Role Management Plugins
WooCommerce Capabilities (Shop Manager and Customer)
If you run an online store with WooCommerce, additional capabilities are automatically added:
Shop Manager Capabilities
Shop Managers have all Editor capabilities plus:
manage_woocommerce— Access WooCommerce settingsview_woocommerce_reports— View sales and analytics reportsmanage_product_terms— Manage product categories and tagsedit_products— Edit productsdelete_products— Delete productsedit_orders— Edit ordersdelete_orders— Delete ordersedit_coupons— Edit couponsdelete_coupons— Delete coupons
Customer Capabilities
Customers have Subscriber capabilities plus:
pay— Pay for ordersview_order_history— View order historyedit_address— Edit billing/shipping addressesdownload_products— Download purchased digital products
Complete guide: WooCommerce Roles: Shop Manager & Customer
WordPress Capabilities Security Best Practices
Proper capability management is critical for WordPress security:
1. Follow the Principle of Least Privilege
Give users only the capabilities they need, nothing more. Never give manage_options unless absolutely necessary.
2. Audit Capabilities Regularly
Review user capabilities every 3-6 months. Remove unnecessary capabilities from custom roles.
3. Be Careful with Custom Capabilities
When adding custom capabilities, use unique names to avoid conflicts with plugins:
// Good: Unique, prefixed capability name
$role->add_cap( 'myplugin_manage_settings' );
// Bad: Generic name that might conflict
$role->add_cap( 'manage_settings' );4. Don’t Give manage_options Lightly
The manage_options capability grants access to all site settings. Only Administrators should have this by default.
5. Use Capabilities in Your Plugins/Themes
Always check capabilities before allowing actions:
if ( current_user_can( 'edit_posts' ) ) {
// Show edit button
}Complete guide: WordPress Security Best Practices
Frequently Asked Questions
What are WordPress capabilities?
WordPress capabilities are individual permissions that control what users can and cannot do on your website. Examples include edit_posts, manage_options, and upload_files.
What is the difference between roles and capabilities?
A role is a named collection of capabilities (like “Editor” or “Author”). A capability is an individual permission (like edit_posts or manage_options). WordPress checks capabilities, not roles, when deciding if a user can do something.
How many capabilities does WordPress have?
WordPress has 50+ default capabilities, plus additional capabilities added by plugins like WooCommerce, membership plugins, and custom plugins.
What is the most powerful WordPress capability?
The manage_options capability is the most powerful. It grants access to all site settings and is only given to Administrators by default.
How do I check if a user has a capability?
Use the current_user_can() function: if ( current_user_can( 'edit_posts' ) ) { ... }
Can I create custom capabilities?
Yes, you can create custom capabilities by adding them to roles using $role->add_cap() or plugins like User Role Editor.
What capabilities does the Editor role have?
Editors have ~25 capabilities, including edit_posts, publish_posts, edit_pages, moderate_comments, and manage_categories.
What capabilities does the Administrator role have?
Administrators have all 50+ default capabilities, including manage_options, activate_plugins, edit_themes, and delete_users.
Final Thoughts: Master WordPress Capabilities
Understanding WordPress capabilities is essential for running a secure, well-organized website. Whether you’re managing user permissions, creating custom roles, or developing plugins, knowing how capabilities work gives you complete control over what users can and cannot do.
Key Takeaways:
- 50+ default capabilities: WordPress comes with over 50 built-in capabilities covering content, users, plugins, themes, and settings.
- Roles are collections of capabilities: Each role (Administrator, Editor, etc.) is just a named group of capabilities.
- WordPress checks capabilities, not roles: When deciding if a user can do something, WordPress checks their capabilities, not their role name.
- Use current_user_can() to check capabilities: This is the standard way to check if a user has permission to do something.
- Follow least privilege: Give users only the capabilities they need, nothing more. Never give
manage_optionsunless absolutely necessary. - WooCommerce adds capabilities: If you run a store, Shop Managers and Customers have additional WooCommerce-specific capabilities.
- Custom capabilities are powerful: You can create custom roles with exactly the capabilities you need using code or plugins.
Additional Resources:
For more authoritative information on WordPress capabilities, check out these official resources:
- WordPress.org: Roles and Capabilities Documentation — Official WordPress documentation
- WordPress Developer Handbook: Roles and Capabilities — Technical guide for developers
- WordPress Codex: Roles and Capabilities — Complete reference
- WPBeginner: WordPress User Roles and Permissions Explained — Beginner-friendly guide
What’s Next?
Now that you understand WordPress capabilities, take action:
- Audit your current roles: Go to Users → All Users and review each account. Do they have the right capabilities?
- Review custom roles: If you have custom roles, make sure they only have necessary capabilities.
- Use capabilities in your code: Always check capabilities before allowing actions in your plugins/themes.
- Bookmark this guide: Come back whenever you need to reference WordPress capabilities.
- Learn about roles: Check out our Complete Guide to WordPress Roles to understand how capabilities are assigned to roles.
Ready to learn more? Check out our guides on WordPress Roles and Permissions, WordPress Security Best Practices, and WordPress Role Management Plugins.
Related Guides
- WordPress Roles and Permissions: The Complete Guide
- WordPress Permissions Category (All Guides)
- WordPress Administrator Role: Complete Breakdown
- WordPress Editor Role: Permissions and Capabilities
- WordPress Author Role Guide
- WordPress Contributor Role: Capabilities and Use Cases
- WordPress Subscriber Role Guide
- WordPress Super Admin Role Guide
- WooCommerce Roles: Shop Manager & Customer
- WordPress Security Best Practices
- WordPress Role Management Plugins
- WordPress User Management
Discover more from WORDPRESS ROLES
Subscribe to get the latest posts sent to your email.
