Як створити роль клона в wordpress


25

Як створити нову роль з тими ж можливостями існуючої ролі. Напр .: Я хотів би створити нову роль з тими ж можливостями адміністратора чи редактора тощо.


Що ви пробували? Що спрацювало? Що не сталося? Ви пробували плагіни для користувачів ? Або плагін менеджера Capability Manager ? Вони роблять те, що ти хочеш?
соулсееках

Ви можете використовувати редактор ролей користувача, якщо хочете все зробити візуально :)

Відповіді:


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

Ви завжди можете використовувати плагін редактора ролей користувача ;

  1. Встановіть плагін
  2. Перейдіть до Користувачів> Редактор ролей користувача
  3. Клацніть "Додати роль" праворуч
  4. У діалоговому вікні виберіть роль, яку ви хочете дублювати, зі спадного меню "Зробити копію"
  5. У діалоговому вікні натисніть "Додати роль"


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
  }
}
?>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.