Cara membuat peran clone di wordpress

25

Cara membuat peran baru dengan kemampuan yang sama dari peran yang ada. Misalnya: Saya ingin membuat peran baru dengan kapabilitas administrator atau editor yang sama dan seterusnya ..

Aadi
sumber
Apa yang sudah kamu coba? Apa yang berhasil? Apa yang tidak? Sudahkah Anda mencoba Anggota Plugin ? Atau Plugin Capability Manager ? Apakah mereka melakukan hal-hal yang Anda inginkan?
soulseekah
Anda dapat menggunakan Editor Peran Pengguna jika Anda ingin melakukan semuanya secara visual :)

Jawaban:

33

Coba ini ... Ini seharusnya berhasil.

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

Periksa.

Rutwick Gangurde
sumber
Awas!! ini tampaknya mengkloning peran sebelum plugin menambah peran dan kemampuan. Saya akan mencoba admin_init untuk melihat apakah ini lebih baik.
spankmaster79
@ spankmaster79 Ya tolong, itu akan bagus!
Rutwick Gangurde
@RutwickGangurde tidak bekerja lebih baik. Peran masih diabaikan oleh plugin
spankmaster79
4

Anda selalu dapat menggunakan plugin Editor Peran Pengguna ;

  1. Instal pengaya
  2. Buka Pengguna> Editor Peran Pengguna
  3. Klik "Tambahkan Peran" di sebelah kanan
  4. Pilih peran yang ingin Anda duplikasi dari dropdown "Make copy of" di kotak dialog
  5. Klik "Tambahkan Peran" di kotak dialog
McOwen
sumber
0

misalkan Anda ingin mengkloning editor.

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

sistem yang berfungsi dalam kasus saya adalah ini:

<?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
sumber