Comment créer un rôle clone dans wordpress


25

Comment créer un nouveau rôle avec les mêmes capacités que le rôle existant. Par exemple: je voudrais créer un nouveau rôle avec les mêmes capacités d'administrateur ou d'éditeur, etc.


Qu'as-tu essayé? Qu'est-ce qui a fonctionné? Qu'est-ce qui n'a pas fonctionné? Avez-vous essayé le plugin Members ? Ou le plug - in Capability Manager ? Font-ils les choses que vous voulez?
soulseekah

Vous pouvez utiliser l'éditeur de rôles utilisateur si vous voulez tout faire visuellement :)

Réponses:


33

Essayez ceci ... Cela devrait fonctionner.

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

Vérifie ça.


Fais attention!! cela semble cloner le rôle avant que les plugins ajoutent des rôles et des capacités. J'essaierai admin_init pour voir si c'est mieux.
spankmaster79

@ spankmaster79 Oui, ce sera génial!
Rutwick Gangurde du

@RutwickGangurde n'a pas mieux fonctionné. Le rôle est toujours ignoré par le plugin
spankmaster79

4

Vous pouvez toujours utiliser le plugin User Role Editor ;

  1. Installez le plugin
  2. Accédez à Utilisateurs> Éditeur de rôle d'utilisateur
  3. Cliquez sur "Ajouter un rôle" à droite
  4. Choisissez le rôle que vous souhaitez dupliquer dans la liste déroulante "Faire une copie de" de la boîte de dialogue
  5. Cliquez sur "Ajouter un rôle" dans la boîte de dialogue

0

supposons que vous souhaitiez cloner l'éditeur.

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

0

le système qui a fonctionné dans mon cas est le suivant:

<?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
  }
}
?>
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.