WP_Roles::remove_cap( string $role, string $cap )

Remove capability from role.


Parameters Parameters

$role

(string) (Required) Role name.

$cap

(string) (Required) Capability name.


Top ↑

More Information More Information

Changing the capabilities of a role is persistent, meaning the removed capability will stay in effect until explicitly granted.

This setting is saved to the database (in table wp_options, field 'wp_user_roles'), so you should run this only once, on theme/plugin activation and/or deactivation.


Top ↑

Source Source

File: wp-includes/class-wp-roles.php

	public function remove_cap( $role, $cap ) {
		if ( ! isset( $this->roles[ $role ] ) ) {
			return;
		}

		unset( $this->roles[ $role ]['capabilities'][ $cap ] );
		if ( $this->use_db ) {
			update_option( $this->role_key, $this->roles );
		}
	}


Top ↑

Changelog Changelog

Changelog
Version Description
2.0.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note 1 content
    Contributed by Akira Tachibana

    From Codex

    /**
     * Don't let editors read private posts.
     *
     * An alternative using WP_Roles instead of WP_Role.
     *
     * You should call the function when your plugin is activated.
     *
     * @uses $wp_roles
     * @uses WP_Roles::remove_cap()
     */
    function remove_editor_read_private_posts(){
    
    	// $wp_roles is an instance of WP_Roles.
    	global $wp_roles;
    	$wp_roles->remove_cap( 'editor', 'read_private_posts' );
    }

You must log in before being able to contribute a note or feedback.