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
RoleconCapabilities, no sóloMeta capabilities, sino como una respuesta sencilla:A
Roledefine un conjunto de tareas que un usuario asignado al rol puede realizar.Capabilitiesestán asignados aRolesMeta capacidades
edit_post,read_postydelete_postse dice que sonMeta 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 tieneedit_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 tieneedit_postscapacidad, puede editar publicaciones.Cuando registra un nuevo tipo de publicación usando
register_post_type, tiene una opción para usarcapability_typeque dice, ¿cuáles son las capacidades similares a? Allí solo puede decirpost, lo que significa que sus capacidades son similares a las delposttipo de publicación.Pero si necesita más personalización, puede decir
bookoarray( 'book', 'books' )(lo mismo), por ejemplo, tener las siguientes capacidades: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()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_cappará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?