J'ai donc des problèmes avec ça et je ne vois pas pourquoi. J'ai juste besoin d'un rôle personnalisé qui peut accéder au blog à l'arrière.
J'ai ajouté un nouveau type de publication avec un type de capacité blog
et un nouveau rôle d'utilisateur avec toutes les majuscules pour permettre aux utilisateurs ayant un accès administrateur d'ajouter / modifier le type de publication personnalisé. Cela fonctionne pour les administrateurs et ils peuvent accéder au type de publication dans le back-end. Cependant, les utilisateurs de mon rôle personnalisé ne peuvent pas du tout accéder au back-end.
Type d'argument à noter
"capability_type" => 'blog',
"map_meta_cap" => true,
Enregistrer le rôle
function add_blog_manager_role(){
add_role(
'blog_manager',
'Blog Manager',
array(
'read' => true,
'edit_posts' => false,
'delete_posts' => false,
'publish_posts' => false,
'upload_files' => true
)
);
}
add_action( 'admin_init', 'add_blog_manager_role', 4 );
Ajouter des bouchons
function add_blog_role_caps() {
$roles = array('blog_manager', 'editor','administrator');
foreach($roles as $the_role) {
$role = get_role($the_role);
$role->add_cap( 'read' );
$role->add_cap( 'read_blog');
$role->add_cap( 'read_private_blog' );
$role->add_cap( 'edit_blog' );
$role->add_cap( 'edit_others_blog' );
$role->add_cap( 'edit_published_blog' );
$role->add_cap( 'publish_blog' );
$role->add_cap( 'delete_others_blog' );
$role->add_cap( 'delete_private_blog' );
$role->add_cap( 'delete_published_blog' );
}
}
add_action('admin_init', 'add_blog_role_caps', 5 );
J'ai googlé frénétiquement en essayant de trouver la cause de cela. J'ai essayé avec des majuscules plurielles et non plurielles, j'ai essayé d'ajouter des capacités dans les arguments de type de message. Mais je ne parviens jamais à entrer dans le back-end. Je n'ai pas d'autre code dans le thème qui pourrait expulser les utilisateurs de l'administrateur (j'ai supprimé mon propre code qui les a expulsés pendant le test)
Modifier Ici, vous pouvez voir un vidage des capacités de blog_manager de la base de données, il y a pas mal de tests BS laissés là-dedans, mais cela ne devrait pas les empêcher de se connecter à partir de ce que je sais.
'blog_manager' => array (
'name' => 'Blog Manager',
'capabilities' => array (
'read' => true,
'edit_posts' => false,
'delete_posts' => false,
'publish_posts' => false,
'upload_files' => true,
'read_blog' => true,
'read_private_blog' => true,
'edit_blog' => true,
'edit_others_blog' => true,
'edit_published_blog' => true,
'publish_blog' => true,
'delete_others_blog' => true,
'delete_private_blog' => true,
'delete_published_blog' => true,
'blog' => true,
'read_private_blogs' => true,
'edit_blogs' => true,
'edit_others_blogs' => true,
'edit_published_blogs' => true,
'publish_blogs' => true,
'delete_others_blogs' => true,
'delete_private_blogs' => true,
'delete_published_blogs' => true,
'delete_blogs' => true,
'delete_blog' => true,
),
)