WordPress как на ладони
wordpress jino

add_cap() 2.0

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

Произведенное изменение возможностей ролей или пользователей записывается в БД (таблица wp_options, поле wp_user_roles) и остается навсегда, до следующего изменения. Поэтому вызывать эту функцию нужно единожды, при активации/деактивации плагина или темы.

Эта не публичная функция, а метод класса. add_cap() можно вызывать из классов: WP_Roles, WP_Role, WP_User.

Хуков нет.

Возвращает

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

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

$roles = new WP_Roles( $user_id );
$roles->add_cap( $role, $cap, $grant ); 

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

Примеры

#1. Добавим возможность пользователям

с ролью "автор" (author) редактировать и другие посты, кроме своих:

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

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

Эти настройки сохраняются в Базу Данных, поэтому обязательно используйте хук, активации темы или плагина: register_activation_hook.

#2. Добавим новую возможность отдельному пользователю

с ID 20. Путь этот пользователь может редактировать посты 'can_edit_posts':

$user = new WP_User( 20 );
$user->add_cap( 'can_edit_posts' );

Cвязанные функции

Из метки: Роли и возможности (role capabilities)

Еще из раздела: Роли и возможности

add_cap Комментариев нет

Здравствуйте, !

Ваш комментарий