Cum să creezi un rol clonat în WordPress

19 oct. 2011, 08:33:43
Vizualizări: 23.2K
Voturi: 28

Cum să creezi un nou rol cu aceleași capabilități ca un rol existent. De exemplu: Aș dori să creez un nou rol cu aceleași capabilități ca administrator sau editor și așa mai departe..

// Clonează rolul Administrator
$administrator = get_role('administrator');
$capabilities = $administrator->capabilities;

// Adaugă noul rol cu aceleași capabilități
add_role('new_administrator', 'Noul Administrator', $capabilities);

// SAU pentru Editor
$editor = get_role('editor');
$capabilities = $editor->capabilities;

// Adaugă noul rol cu aceleași capabilități
add_role('new_editor', 'Noul Editor', $capabilities);
2
Comentarii

Ce ai încercat? Ce a funcționat? Ce nu a mers? Ai încercat Members Plugin? Sau Capability Manager Plugin? Fac aceste plugin-uri ceea ce dorești?

soulseekah soulseekah
19 oct. 2011 08:42:02

Poți folosi User Role Editor dacă vrei să faci totul vizual :)

User User
19 oct. 2011 13:57:22
Toate răspunsurile la întrebare 5
3
44

Încearcă asta... Ar trebui să funcționeze.

<?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');
    //Adaugă un 'new_role' cu toate capacitățile de administrator
    $wp_roles->add_role('new_role', 'Rolul Meu Personalizat', $adm->capabilities);
}
?>

Verifică.

19 oct. 2011 08:56:14
Comentarii

Atenție!! Se pare că acest lucru clonează rolul înainte ca plugin-urile să adauge roluri și capabilități. Voi încerca admin_init pentru a vedea dacă este mai bine.

spankmaster79 spankmaster79
21 ian. 2014 19:21:41

@spankmaster79 Da, te rog, asta ar fi minunat!

Rutwick Gangurde Rutwick Gangurde
22 ian. 2014 08:00:22

@RutwickGangurde nu a funcționat mai bine. Rolul este în continuare ignorat de plugin

spankmaster79 spankmaster79
24 ian. 2014 17:42:46
0

Puteți utiliza întotdeauna plugin-ul User Role Editor;

  1. Instalați plugin-ul
  2. Accesați Utilizatori > User Role Editor
  3. Faceți clic pe "Add Role" în partea dreaptă
  4. Alegeți rolul pe care doriți să îl copiați din meniul derulant "Make copy of" în caseta de dialog
  5. Faceți clic pe "Add Role" în caseta de dialog
25 mai 2017 17:35:07
0

presupunem că dorești să clonezi editorul.

$edr = $wp_roles->get_role('Editor');
add_role('clonerole', 'clone roles', $edr->capabilities);
28 apr. 2017 09:21:12
0

sistemul care a funcționat în cazul meu este acesta:

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

function cloneRole() {
 $adm = get_role('administrator');
 $adm_cap= array_keys( $adm->capabilities ); //obține capabilitățile administratorului
 add_role('new_role', 'Rolul Meu Personalizat'); //creează un nou rol
 $new_role = get_role('new_role');
  foreach ( $adm_cap as $cap ) {
   $new_role->add_cap( $cap ); //clonează capabilitățile administratorului către noul rol
  }
}
?>
16 iul. 2018 13:50:49
0

Începând din 2024, clonarea unui rol se realizează mai eficient cu comanda wp CLI pentru roluri, de exemplu:

wp role create 'new-role' 'New-role' --clone 'existing-role'
21 mai 2024 15:28:31