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

Aadi
507
Comentarii
Toate răspunsurile la întrebare
5
3
Î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ă.

Rutwick Gangurde
8.6K
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.

21 ian. 2014 19:21:41
0
Puteți utiliza întotdeauna plugin-ul User Role Editor;
- Instalați plugin-ul
- Accesați Utilizatori > User Role Editor
- Faceți clic pe "Add Role" în partea dreaptă
- Alegeți rolul pe care doriți să îl copiați din meniul derulant "Make copy of" în caseta de dialog
- Faceți clic pe "Add Role" în caseta de dialog

McOwen
142
25 mai 2017 17:35:07
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
}
}
?>

Fosco Ventura
1
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'

sphakka
101
21 mai 2024 15:28:31
Întrebări similare
1
răspunsuri
3
răspunsuri