Como criar um papel de clone no wordpress

25

Como criar uma nova função com os mesmos recursos da função existente. Por exemplo: eu gostaria de criar uma nova função com os mesmos recursos de administrador ou editor e assim por diante.

Aadi
fonte
O que você tentou? O que funcionou? O que não? Já experimentou o Plugin de membros ? Ou Plugin do Gerenciador de Recursos ? Eles fazem as coisas que você quer?
2191111
Você pode usar o Editor função do usuário , se você quer fazer tudo visualmente :)

Respostas:

33

Tente isso ... Isso deve funcionar.

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

Verifique-o.

Rutwick Gangurde
fonte
Cuidado!! isso parece clonar a função antes que os plug-ins adicionem funções e recursos. Vou tentar admin_init para ver se isso é melhor.
precisa saber é o seguinte
@ spankmaster79 Sim, por favor, isso será ótimo!
Rutwick Gangurde 22/01
@RutwickGangurde não funcionou melhor. A função ainda é ignorada pelo plugin
spankmaster79
4

Você sempre pode usar o plugin User Role Editor ;

  1. Instale o plugin
  2. Vá para Usuários> Editor de Função de Usuário
  3. Clique em "Adicionar função" à direita
  4. Escolha a função que deseja duplicar no menu suspenso "Fazer cópia de" na caixa de diálogo
  5. Clique em "Adicionar função" na caixa de diálogo
McOwen
fonte
0

suponha que você queira clonar o editor.

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

o sistema que funcionou no meu caso é o seguinte:

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