Así que tengo algunos problemas con esto y no puedo ver por qué. Solo necesito un rol personalizado que pueda acceder al blog en el back-end.
Agregué un nuevo tipo de publicación con un tipo de capacidad blog
y un nuevo rol de usuario con todos los límites para permitir a los usuarios con acceso de administrador agregar / editar el tipo de publicación personalizada. Esto funciona para los administradores y pueden acceder al tipo de publicación en el back-end. Sin embargo, los usuarios de mi rol personalizado no pueden acceder al back-end.
Publicar args de nota
"capability_type" => 'blog',
"map_meta_cap" => true,
Registrar rol
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 );
Agregar tapas
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 );
He estado buscando en Google frenéticamente tratando de encontrar la causa de esto. He intentado con mayúsculas en plural, no plural, he intentado agregar capacidades en los argumentos de tipo post. Sin embargo, nunca puedo entrar en el back-end. No tengo ningún otro código en el tema que pueda expulsar a los usuarios del administrador (eliminé mi propio código que los expulsó al probar esto)
Editar Aquí puede ver un volcado de las capacidades blog_manager de la base de datos, hay un poco de pruebas de BS que quedan allí, pero eso no debería impedir que puedan iniciar sesión de lo que sé.
'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,
),
)