WP_Roles::remove_cap()
Видаляє право (можливість) у зазначеної ролі користувача або конкретного користувача.
Змінивши право один раз, зміна залишиться назавжди, доки не буде змінено ще раз. Ці налаштування зберігаються в БД (в таблицю wp_options, поле wp_user_roles), тому цю функцію потрібно запускати один раз при активації/деактивації плагіна або теми.
Це метод класу WP_User , тому він має викликатися з екземплярів цих класів, як у прикладах.
Список прав дивіться тут .
{} Це метод класу: WP_Roles{}
Хуків немає.
Повертає
null. Нічого не вертає.
Використання
global $wp_roles; $wp_roles->remove_cap( $role, $cap ); // або $role = get_role( 'author' ); $role->remove_cap( $cap );
-  $role
 (рядок) (обов’язковий)
- Назва ролі: Super Admin, Administrator, Editor, Author, Contributor, Subscriber.
-  $cap
 (рядок) (обов’язковий)
-  Назва можливості.
 Таблиця з ролями та його правами .
Приклади
#1 Заборонимо читання приватних постів, користувачам у ролі editor
Функцію необхідно викликати під час активації плагіна, тобто. один раз, а не постійно:
function remove_editor_read_private_posts() {
	// get_role повертає екземпляр класу WP_Role.
	$role = get_role( 'editor' );
	$role->remove_cap( 'read_private_posts' );
}
// Теж саме можна зробити через клас WP_Roles:
function remove_editor_read_private_posts(){
	global $wp_roles;
	$wp_roles->remove_cap( 'editor', 'read_private_posts' );
}#2 Видалення кількох можливостей
Видалимо деякі можливості у всіх користувачів за участю “редактор” (editor):
// Викликайте функцію один раз, при активації плагіна/теми
function wpcodex_set_capabilities() {
	// Отримуємо об'єкт ролі.
	$ editor = get_role ( 'editor');
	// Список можливостей, які потрібно видалити у editor
	$caps = array(
		'moderate_comments',
		'manage_categories',
		'manage_links',
		'edit_others_posts',
		'edit_others_pages',
		'delete_posts',
	);
	foreach ($caps as $cap) {
		$ editor-> remove_cap ( $ cap );
	}
}#3 Видалимо можливість у конкретного користувача
Не можна видалити право користувача, якщо воно стосується прав його ролі! Видаляти можна права, тільки які були додані і виходять за межі його ролі. Наприклад користувачеві з правами автора, було додано право редагувати чужі пости. Якщо необхідно видалити право участі користувача, це право необхідно видаляти в самої участі. Але така зміна торкнеться всіх користувачів з цією роллю.
За умовчанням у користувачів немає прав, крім тих що йому дає його роль (ролей у користувача може бути одночасно кілька). Тому за замовчуванням у користувача неможливо видалити будь-які права.
Якщо необхідно обмежити користувача у правах і навіть не чіпати права його участі. То треба створити нову роль, передати їй всі необхідні права і встановити цю роль для користувача.
Видалимо можливість читання приватних постів у користувача з ID 5, тільки якщо таке право виходить за межі його ролі і воно було додано (делеговано) для користувача 5:
$user_id = 5; $user = new WP_User( $user_id ); $user->remove_cap( 'read_private_posts' );
список змін
| З версії 2.0.0 | Введено. | 
Код WP_Roles::remove_cap() WP Roles::remove cap WP 6.0.2
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 );
	}
}