Title: WP_Role::has_cap
Published: April 25, 2014
Last modified: May 20, 2026

---

# WP_Role::has_cap( string $cap ): bool

## In this article

 * [Parameters](https://developer.wordpress.org/reference/classes/wp_role/has_cap/?output_format=md#parameters)
 * [Return](https://developer.wordpress.org/reference/classes/wp_role/has_cap/?output_format=md#return)
 * [Source](https://developer.wordpress.org/reference/classes/wp_role/has_cap/?output_format=md#source)
 * [Hooks](https://developer.wordpress.org/reference/classes/wp_role/has_cap/?output_format=md#hooks)
 * [Related](https://developer.wordpress.org/reference/classes/wp_role/has_cap/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/classes/wp_role/has_cap/?output_format=md#changelog)
 * [User Contributed Notes](https://developer.wordpress.org/reference/classes/wp_role/has_cap/?output_format=md#user-contributed-notes)

[ Back to top](https://developer.wordpress.org/reference/classes/wp_role/has_cap/?output_format=md#wp--skip-link--target)

Determines whether the role has the given capability.

## 󠀁[Parameters](https://developer.wordpress.org/reference/classes/wp_role/has_cap/?output_format=md#parameters)󠁿

 `$cap`stringrequired

Capability name.

## 󠀁[Return](https://developer.wordpress.org/reference/classes/wp_role/has_cap/?output_format=md#return)󠁿

 bool Whether the role has the given capability.

## 󠀁[Source](https://developer.wordpress.org/reference/classes/wp_role/has_cap/?output_format=md#source)󠁿

    ```php
    public function has_cap( $cap ) {
    	/**
    	 * Filters which capabilities a role has.
    	 *
    	 * @since 2.0.0
    	 *
    	 * @param bool[] $capabilities Array of key/value pairs where keys represent a capability name and boolean values
    	 *                             represent whether the role has that capability.
    	 * @param string $cap          Capability name.
    	 * @param string $name         Role name.
    	 */
    	$capabilities = apply_filters( 'role_has_cap', $this->capabilities, $cap, $this->name );

    	if ( ! empty( $capabilities[ $cap ] ) ) {
    		return $capabilities[ $cap ];
    	} else {
    		return false;
    	}
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/class-wp-role.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/7.0/src/wp-includes/class-wp-role.php#L84)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/7.0/src/wp-includes/class-wp-role.php#L84-L102)

## 󠀁[Hooks](https://developer.wordpress.org/reference/classes/wp_role/has_cap/?output_format=md#hooks)󠁿

 [apply_filters( ‘role_has_cap’, bool[] $capabilities, string $cap, string $name )](https://developer.wordpress.org/reference/hooks/role_has_cap/)

Filters which capabilities a role has.

## 󠀁[Related](https://developer.wordpress.org/reference/classes/wp_role/has_cap/?output_format=md#related)󠁿

| Uses | Description | 
| [apply_filters()](https://developer.wordpress.org/reference/functions/apply_filters/)`wp-includes/plugin.php` |

Calls the callback functions that have been added to a filter hook.

  |

## 󠀁[Changelog](https://developer.wordpress.org/reference/classes/wp_role/has_cap/?output_format=md#changelog)󠁿

| Version | Description | 
| [2.0.0](https://developer.wordpress.org/reference/since/2.0.0/) | Introduced. |

## 󠀁[User Contributed Notes](https://developer.wordpress.org/reference/classes/wp_role/has_cap/?output_format=md#user-contributed-notes)󠁿

 1.  [Skip to note 2 content](https://developer.wordpress.org/reference/classes/wp_role/has_cap/?output_format=md#comment-content-7439)
 2.   [Sultan Mahmud](https://profiles.wordpress.org/sultanb24/)  [  6 months ago  ](https://developer.wordpress.org/reference/classes/wp_role/has_cap/#comment-7439)
 3. [You must log in to vote on the helpfulness of this note](https://login.wordpress.org?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fclasses%2Fwp_role%2Fhas_cap%2F%23comment-7439)
    Vote results for this note: 0[You must log in to vote on the helpfulness of this note](https://login.wordpress.org?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fclasses%2Fwp_role%2Fhas_cap%2F%23comment-7439)
 4. To Check `has_cap( $cap )` Method and Print on admin page
 5.     ```php
        add_action( ‘admin_notices’, ‘wpdocs_check_function_work’ );
        function wpdocs_check_function_work() {
            $role = get_role( ‘contributor’ ); // get_role(); Provide an object. So we can call $role an object
            $display = $role->has_cap( ‘edit_posts’ );
    
            // Check Capability Found Or Not
            if ( true === $display ) {
                echo “Your Capability has found”;
            } else {
                echo “Your Capability Not found”;
            }
    
            // Show All Capabilities For a Role
            if ( $role ) {
                $capabilities = $role->capabilities;
                $cap_list = implode( ‘, ‘, array_keys( $capabilities ) );
                echo ” Capabilities are : “. esc_html( $cap_list );
            }
    
        }
        ```
    
 6.  [Log in to add feedback](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fclasses%2Fwp_role%2Fhas_cap%2F%3Freplytocom%3D7439%23feedback-editor-7439)

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fclasses%2Fwp_role%2Fhas_cap%2F)
before being able to contribute a note or feedback.