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.


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.


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"

0

Angenommen, Sie möchten den Editor klonen.

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

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
  }
}
?>
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.