WP_Roles::add_cap()
Додає або видаляє нову можливість цієї ролі.
Зміна можливостей ролей або користувачів записується до бази даних. Тому викликати цю функцію потрібно якось, при активації/деактивації плагіна або теми.
Це метод класу: 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
Приклади
#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 Roles::add cap WP 6.0.2
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 ); } }