Me estoy confundiendo mucho sobre las siguientes cosas:
- diferencia entre las funciones Role y Meta,
- diferencia entre capacidades meta y primitivas,
- cuando usar
map_meta_cap()
filtro
Hubo muchas situaciones en las que agregué capacidades WP existentes o personalizadas a roles existentes o personalizados de WP, esperando que funcione de forma inmediata y la mayoría de las veces no lo hace.
Veo que la gente menciona sobre el map_meta_cap()
filtro, pero no puedo encontrar una buena explicación de lo que realmente hace y cuándo debo usarlo y cuándo las capacidades funcionarán de inmediato.
Espero que tenga sentido.
Agradecería enormemente las explicaciones o enlaces a recursos que explican esto bien.
Gracias Dasha
capabilities
user-roles
dashaluna
fuente
fuente
Respuestas:
Eso sería mejor pedir al comparar
Role
conCapabilities
, no sóloMeta 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 aRoles
Meta capacidades
edit_post
,read_post
ydelete_post
se dice que sonMeta 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 tieneedit_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 tieneedit_posts
capacidad, puede editar publicaciones.Cuando registra un nuevo tipo de publicación usando
register_post_type
, tiene una opción para usarcapability_type
que dice, ¿cuáles son las capacidades similares a? Allí solo puede decirpost
, lo que significa que sus capacidades son similares a las delpost
tipo de publicación.Pero si necesita más personalización, puede decir
book
oarray( 'book', 'books' )
(lo mismo), por ejemplo, tener las siguientes capacidades: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()
llamaWP_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 enregister_post_type
, que hace lo mismo, en el registro post_type.fuente
...If somebody has edit_posts capabality, she/he can edit posts...
pero cual / cuyas publicaciones?