WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

WP_Roles::add_cap()publicWP 2.0.0

Добавляет или удаляет новую возможность указанной роли.

Изменение возможностей ролей или пользователей записывается в базу данных. Поэтому вызывать эту функцию нужно единожды, при активации/деактивации плагина или темы.

Это метод класса: WP_Roles.

Используйте WP_User::add_cap(), чтобы добавить/удалить право у отдельного пользователя.

Метод класса: WP_Roles{}

Хуков нет.

Возвращает

null. Ничего не возвращает.

Использование

// для WP
$roles = new WP_Roles( $user_id );
$roles->add_cap( $role, $cap, $grant );
$role(строка) (обязательный)
Название роли: Super Admin, Administrator, Editor, Author, Contributor, Subscriber.
$cap(строка) (обязательный)
Название возможности. Таблица с ролями и их возможностями по умолчанию.
$grant(логический)
Может ли указанная роль пользоваться указанной возможностью. Т.е. разрешить выполнять эту возможность (true) или наоборот запретить (false).
По умолчанию: true

Примеры

0

#1 Добавим возможность всем пользователям с ролью "автор" (author)

Разрешим авторам редактировать и другие посты (кроме своих):

register_activation_hook( __FILE__, 'add_theme_caps' );

function add_theme_caps() {

	// получим роль author. Одновременно подключимся к классу WP_Role
	$role = get_role( 'author' );

	 // добавим новую возможность
	$role->add_cap( 'edit_others_posts' ); 
}

Список изменений

С версии 2.0.0 Введена.

Код WP_Roles::add_cap() WP 6.4.3

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

	$this->roles[ $role ]['capabilities'][ $cap ] = $grant;
	if ( $this->use_db ) {
		update_option( $this->role_key, $this->roles );
	}
}
2 комментария
    Войти