diferencia entre las funciones de rol y meta
Eso sería mejor pedir al comparar Role
con Capabilities
, no sólo Meta capabilities
, sino como una respuesta sencilla:
A Role
define 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_post
y delete_post
se dice que son Meta Capabilities
porque 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_post
capacidad, porque alguien te preguntará: ¿ puede editar qué publicación?
Capacidades primitivas
Estas son capacidades como las edit_posts
que no dependen de ningún contexto y son intrínsecas para el usuario. Si alguien tiene edit_posts
capacidad, 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_type
que dice, ¿cuáles son las capacidades similares a? Allí solo puede decir post
, lo que significa que sus capacidades son similares a las del post
tipo de publicación.
Pero si necesita más personalización, puede decir book
o 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_type
como 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_cap
parámetro en register_post_type
, que hace lo mismo, en el registro post_type.