diferencia entre las funciones de rol y meta
Eso sería mejor pedir al comparar Rolecon Capabilities, no sólo Meta capabilities, sino como una respuesta sencilla:
A Roledefine un conjunto de tareas que un usuario asignado al rol puede realizar.
Capabilities están asignados a Roles
diferencia entre capacidades meta y primitivas?
Meta capacidades
edit_post, read_posty delete_postse dice que son Meta Capabilitiesporque dependen del contexto, por ejemplo, la publicación que se está editando / leyendo / borrando. Eso no tiene sentido si dices que algún usuario tiene edit_postcapacidad, porque alguien te preguntará: ¿ puede editar qué publicación?
Capacidades primitivas
Estas son capacidades como las edit_postsque no dependen de ningún contexto y son intrínsecas para el usuario. Si alguien tiene edit_postscapacidad, puede editar publicaciones.
cuándo usar el filtro map_meta_cap ()?
Cuando registra un nuevo tipo de publicación usando register_post_type
, tiene una opción para usar capability_typeque dice, ¿cuáles son las capacidades similares a? Allí solo puede decir post, lo que significa que sus capacidades son similares a las del posttipo de publicación.
Pero si necesita más personalización, puede decir booko array( 'book', 'books' )(lo mismo), por ejemplo, tener las siguientes capacidades:
capabilities' => array(
'edit_post' => 'edit_book',
'read_post' => 'read_book',
'delete_post' => 'delete_book',
'edit_posts' => 'edit_books',
'edit_others_posts' => 'edit_others_books',
'publish_posts' => 'publish_books',
'read_private_posts' => 'read_private_books',
'create_posts' => 'edit_books',
)
Cuando se usa capability_typecomo una matriz, por ejemplo, matriz ('historia', 'historias'), el primer elemento se usará para las capacidades singulares y el segundo elemento de la matriz para las capacidades plurales.
Se map_meta_cap()llama WP_User->has_cap()a la función para convertir una metacapacidad en una o más capacidades primitivas.
También hay un map_meta_capparámetro en register_post_type, que hace lo mismo, en el registro post_type.