So erstellen Sie eine Klonrolle in WordPress

25

So erstellen Sie eine neue Rolle mit den gleichen Funktionen wie die vorhandene Rolle. ZB: Ich möchte eine neue Rolle mit den gleichen Funktionen wie Administrator oder Editor erstellen.

Aadi
quelle
Was hast du versucht? Was hat funktioniert Was nicht Haben Sie das Members Plugin ausprobiert ? Oder Capability Manager Plugin ? Tun sie die Dinge, die Sie wollen?
Soulseekah
Sie können den Benutzerrollen-Editor verwenden, wenn Sie alles visuell machen möchten :)

Antworten:

33

Versuchen Sie dies ... Dies sollte funktionieren.

<?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);
}
?>

Prüfen Sie.

Rutwick Gangurde
quelle
Achtung!! Dies scheint die Rolle zu klonen, bevor die Plugins Rollen und Funktionen hinzufügen. Ich werde admin_init versuchen, um zu sehen, ob dies besser ist.
spankmaster79
@ spankmaster79 Ja bitte, das wird toll!
Rutwick Gangurde
@RutwickGangurde hat nicht besser funktioniert. Die Rolle wird vom Plugin immer noch ignoriert
spankmaster79
4

Sie können immer das User Role Editor- Plugin verwenden.

  1. Installieren Sie das Plugin
  2. Gehen Sie zu Benutzer> Benutzerrollen-Editor
  3. Klicken Sie rechts auf "Rolle hinzufügen"
  4. Wählen Sie die zu duplizierende Rolle aus der Dropdown-Liste "Kopie erstellen von" im Dialogfeld aus
  5. Klicken Sie im Dialogfeld auf "Rolle hinzufügen"
McOwen
quelle
0

Angenommen, Sie möchten den Editor klonen.

$edr = $wp_roles->get_role('Editor');
add_role('clonerole', 'clone roles', $edr->capabilities);
Mohammed Kaleemulla
quelle
0

Das System, das in meinem Fall funktioniert hat, ist das folgende:

<?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
  }
}
?>
Fosco Ventura
quelle