Как создать роль клона в WordPress

25

Как создать новую роль с такими же возможностями существующей роли. Например: я хотел бы создать новую роль с теми же возможностями администратора или редактора и так далее ..

Aadi
источник
Что вы пробовали? Что сработало? Что не сделал? Вы пробовали Плагин Пользователей ? Или плагин менеджера возможностей ? Они делают то, что вы хотите?
soulseekah
Вы можете использовать User Role Editor, если хотите сделать все визуально :)

Ответы:

33

Попробуйте это ... Это должно работать.

<?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');
    //Adding a 'new_role' with all admin caps
    $wp_roles->add_role('new_role', 'My Custom Role', $adm->capabilities);
}
?>

Проверь это.

Рутвик Гангурде
источник
Осторожно!! это похоже на клонирование роли до того, как плагины добавят роли и возможности. Я попытаюсь admin_init, чтобы увидеть, если это лучше.
spankmaster79
@ spankmaster79 Да, пожалуйста, это будет здорово!
Рутвик Гангурде
@RutwickGangurde не работал лучше. Роль по-прежнему игнорируется плагином
spankmaster79
4

Вы всегда можете использовать плагин User Role Editor ;

  1. Установите плагин
  2. Перейдите в Пользователи> Редактор ролей пользователей.
  3. Нажмите «Добавить роль» справа
  4. Выберите роль, которую вы хотите дублировать, из раскрывающегося списка «Сделать копию» в диалоговом окне.
  5. Нажмите «Добавить роль» в диалоговом окне
McOwen
источник
0

Предположим, вы хотите клонировать редактор.

$edr = $wp_roles->get_role('Editor');
add_role('clonerole', 'clone roles', $edr->capabilities);
Мохаммед Калиемулла
источник
0

система, которая работала в моем случае это:

<?php
add_action('init', 'cloneRole');

function cloneRole() {
 $adm = get_role('administrator');
 $adm_cap= array_keys( $adm->capabilities ); //get administator capabilities
 add_role('new_role', 'My Custom Role'); //create new role
 $new_role = get_role('new_role');
  foreach ( $adm_cap as $cap ) {
   $new_role->add_cap( $cap ); //clone administrator capabilities to new role
  }
}
?>
Фоско Вентура
источник