Как создать клон роли в WordPress
19 окт. 2011 г., 08:33:43
Просмотры: 23.2K
Голосов: 28
Как создать новую роль с теми же возможностями, что и у существующей роли. Например: Я хотел бы создать новую роль с такими же возможностями, как у администратора или редактора и так далее..

Aadi
507
Комментарии
Все ответы на вопрос
5
3
Попробуйте это... Это должно сработать.
<?php
add_action('init', 'cloneRole');
function cloneRole()
{
global $wp_roles;
if ( ! isset( $wp_roles ) )
$wp_roles = new WP_Roles();
$adm = $wp_roles->get_role('administrator');
//Добавляем новую роль 'new_role' со всеми правами администратора
$wp_roles->add_role('new_role', 'Моя пользовательская роль', $adm->capabilities);
}
?>
Проверьте.

Rutwick Gangurde
8.6K
19 окт. 2011 г. 08:56:14
Комментарии
Внимание!! Похоже, что копирование роли происходит до того, как плагины добавляют роли и возможности. Попробую использовать admin_init, чтобы проверить, будет ли это лучше.

21 янв. 2014 г. 19:21:41
0
Вы всегда можете использовать плагин User Role Editor:
- Установите плагин
- Перейдите в раздел Пользователи > Редактор ролей
- Нажмите "Добавить роль" справа
- Выберите роль, которую хотите скопировать, из выпадающего списка "Сделать копию из" в диалоговом окне
- Нажмите "Добавить роль" в диалоговом окне

McOwen
142
25 мая 2017 г. 17:35:07
0
система, которая сработала в моём случае, выглядит так:
<?php
add_action('init', 'cloneRole');
function cloneRole() {
$adm = get_role('administrator');
$adm_cap= array_keys( $adm->capabilities ); //получаем права администратора
add_role('new_role', 'Моя Пользовательская Роль'); //создаём новую роль
$new_role = get_role('new_role');
foreach ( $adm_cap as $cap ) {
$new_role->add_cap( $cap ); //копируем права администратора для новой роли
}
}
?>

Fosco Ventura
1
16 июл. 2018 г. 13:50:49
0
По состоянию на 2024 год, клонирование роли лучше выполнять с помощью команды wp
CLI для работы с ролями, например:
wp role create 'new-role' 'New-role' --clone 'existing-role'

sphakka
101
21 мая 2024 г. 15:28:31
Похожие вопросы
3
ответов