Este filtro le permite extender la map_meta_cap()
función . Se llama aWP_User->has_cap()
esta función para convertir una metacapacidad en una o más capacidades primitivas .
Por ejemplo, desea saber si el usuario actual debería poder editar la publicación actual, la edit_post
metacapacidad . Esto depende de algunos factores: ¿es el usuario el autor de la publicación? ¿La publicación ya está publicada? ¿La publicación está marcada como privada? Las capacidades primitivas son edit_posts
, edit_published_posts
, edit_others_posts
y edit_private_posts
: se puede asignar a estos roles de usuario . map_meta_cap()
comprueba el autor y el estado de la publicación y devuelve el conjunto correcto de capacidades primitivas que este usuario debe tener para permitir la edición de la publicación (si la publicación está escrita por otra persona y publicada, volvería array('edit_others_posts', 'edit_published_posts')
, por lo que el usuario debe tener ambas capacidades para Seguir).
Agregar esta idea de capacidades meta y capacidades primitivas le permite mantener la WP_User
clase base libre de conocimiento de publicaciones y estados de publicaciones y lo que sea, y solo enfocarse en las capacidades. La conversión real se encuentra en una función externa, map_meta_cap()
.
El filtro lemap_meta_cap
permite ampliar la funcionalidad, por ejemplo, cuando utiliza publicaciones personalizadas. Creo que se proporciona soporte básico si establece el capabilities
argumento de register_post_type
, pero el artículo mencionado por Justin Tadlock y el complemento Prospress proporcionan ejemplos completos de esto. Pero puede personalizarlo para cambiar completamente el sistema de capacidades, si lo desea.