J'essaie d'ajouter un rôle spécifique pour gérer mes types de publication personnalisés et je suis bloqué au tout début.
J'ai ajouté add_role()
au fichier functions.php comme suit:
add_role('resourcerer', 'Resourcerer', array('read_internal_jobs'));
et créé un utilisateur avec ce rôle. Cependant, lorsque j'essaie de me connecter avec un nouvel utilisateur, l'erreur You do not have sufficient permissions to access this page.
s'affiche. Je ne peux pas comprendre ce que je fais mal ici: S
Lors de l'enregistrement de mon type de message personnalisé, j'ai les paramètres suivants:
'capability_type' => array('internal_job', 'internal_jobs'),
'map_meta_cap' => true,
qui, si je comprends bien le register_post_type () Codex correctement, en spécifiant capability_type
, les chaînes capabilities
seront construites respectivement à l'aide des chaînes spécifiées dans le capability_type
, par exemple : edit_internal_jobs, publish_internal_jobs et ainsi de suite.
J'apprécierais vraiment toute aide!
En effet, les capacités "normales" nécessaires pour se connecter sont manquantes. Avant de l’utiliser sur un utilisateur, vous devez simplement charger les fonctionnalités d’un rôle par défaut et les attacher à votre rôle personnalisé.
EDIT: Solution de @dashalune (OP):
add_role('resourcerer', 'Resourcerer');
$role =& get_role('resourcerer');
$role->add_cap('read');
Voici un exemple complet de rôles personnalisés pour un rôle personnalisé (via add_role) pour un thème spécifique:
function add_theme_caps() {
$role = get_role( 'roletypename' );
// create if neccesary
if (!$role) $role = add_role('roletypename', 'Role Name');
// add theme specific roles
$role->add_cap('delete_posts');
$role->add_cap('delete_published_posts');
$role->add_cap('edit_posts');
$role->add_cap('edit_published_posts');
$role->add_cap('publish_posts');
$role->add_cap('read');
$role->add_cap('upload_files');
}
add_action( 'admin_init', 'add_theme_caps');