- Statut : non résolu
- Ce sujet contient 0 réponse, 1 participant et a été mis à jour pour la dernière fois par erehcab, le il y a 12 années et 4 mois.
-
AuteurMessages
-
23 mai 2012 à 12 h 16 min #509952
Bonjour à tous,
j’essaie de créer un nouveau rôle spécifique à un nouveau type que j’ai créé mais une fois connecté avec ce rôle à l’interface d’administration je vois mon type mais impossible de valider la création d’un article de ce type il m’affiche ce message d’erreur :Vous n’avez pas l’autorisation de modifier cet article.
De plus j’aimerai lorsque je suis connecté en tant qu’administrateur pouvoir avoir accès au type mais impossible il ne s’affiche pas dans le menu…
Enfin voilà le code que j’utilise (intégré dans functions.php du thème) :
add_role(‘professeur’, ‘Professeur’, array(
‘publish_professeur’ => true,
‘edit_professeur’ => true,
‘edit_others_professeur’ => true,
‘delete_professeur’ => true,
‘delete_others_professeur’ => true,
‘read_private_professeur’ => true,
‘edit_professeur’ => true,
‘delete_professeur’ => true,
‘read_professeur’ => true
));
function my_post_type_professeur() {
$capabilities = array(
‘publish_posts’ => ‘publish_professeur’,
‘edit_posts’ => ‘edit_professeur’,
‘edit_others_posts’ => ‘edit_others_professeur’,
‘delete_posts’ => ‘delete_professeur’,
‘delete_others_posts’ => ‘delete_others_professeur’,
‘read_private_posts’ => ‘read_private_professeur’,
‘edit_post’ => ‘edit_professeur’,
‘delete_post’ => ‘delete_professeur’,
‘read_post’ => ‘read_professeur’
);
register_post_type( ‘professeur’,
array(
‘label’ => __(‘Professeur piano’),
‘singular_label’ => __(‘Professeur piano’, ‘toolbox’),
‘_builtin’ => false,
‘exclude_from_search’ => true, // Exclude from Search Results
‘capability_type’ => ‘professeur’,
‘capabilities’ => $capabilities,
‘public’ => true,
‘show_ui’ => true,
‘show_in_nav_menus’ => false,
‘rewrite’ => array(‘slug’ => ‘professeur’, ‘with_front’ => FALSE),
‘query_var’ => « professeur », // This goes to the WP_Query schema
‘menu_icon’ => get_template_directory_uri() . ‘/images/icone_prof.png’,
‘supports’ => array( ‘title’, ‘editor’, ‘author’, ‘thumbnail’, ‘excerpt’)
)
);
flush_rewrite_rules( false );
}
add_action(‘init’, ‘my_post_type_professeur’);
function professeur_map_meta_cap( $caps, $cap, $user_id, $args ) {
if ( ‘edit_professeur’ == $cap || ‘delete_professeur’ == $cap || ‘read_professeur’ == $cap ) {
$post = get_post( $args[0] );
$post_type = get_post_type_object( $post->post_type );
$caps = array();
}
if ( ‘edit_professeur’ == $cap ) {
if ( $user_id == $post->post_author )
$caps[] = $post_type->cap->edit_posts;
else
$caps[] = $post_type->cap->edit_others_posts;
}
elseif ( ‘delete_professeur’ == $cap ) {
if ( $user_id == $post->post_author )
$caps[] = $post_type->cap->delete_posts;
else
$caps[] = $post_type->cap->delete_others_posts;
}
elseif ( ‘read_professeur’ == $cap ) {
if ( ‘private’ != $post->post_status )
$caps[] = ‘read’;
elseif ( $user_id == $post->post_author )
$caps[] = ‘read’;
else
$caps[] = $post_type->cap->read_private_posts;
}
return $caps;
}
add_filter( ‘map_meta_cap’, ‘professeur_map_meta_cap’, 10, 4 );la dernière fonction (professeur_map_meta_cap) je la comprends pas forcément bien, j’ai bien saisit qu’il fallait l’utiliser pour officialiser les nouveaux droits au près de WordPress mais c’est vraiment ça…
Je sais qu’il y a plusieurs plugins pour gérer ce genre de problématique mais j’aimerai ne pas avoir à en utiliser.
-
AuteurMessages
- Le forum ‘Dépôts pour les extensions, trucs, astuces’ est fermé à de nouveaux sujets et réponses.