Este filtro le permite extender la función map_meta_cap()
. Esta función es llamada por WP_User->has_cap()
para convertir un < em> meta capacidad a una o más capacidades primitivas .
Por ejemplo, desea saber si el usuario actual debería tener permiso para editar la publicación actual, la capacidad meta edit_post
. Esto depende de algunos factores: ¿el usuario es el autor de la publicación? ¿Ya está publicado el post? ¿El post está marcado como privado? Las capacidades primitivas son edit_posts
, edit_published_posts
, edit_others_posts
y edit_private_posts
: puede asignarlas a roles de usuario . map_meta_cap()
verifica 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, sería devuelve array('edit_others_posts', 'edit_published_posts')
, por lo que el usuario debe tener ambas capacidades para continuar).
La adición de esta idea de capacidades meta y capacidades primitivas le permite mantener la clase base WP_User
libre del conocimiento de publicaciones y estados de publicaciones y lo que sea, y solo enfocar en las capacidades. La conversión real está en una función externa, map_meta_cap()
.
El filtro map_meta_cap
le permite ampliar La funcionalidad, por ejemplo cuando se utilizan publicaciones personalizadas. Creo que se proporciona soporte básico si establece el argumento capabilities
de register_post_type
, pero el artículo mencionado por Justin Tadlock y Prospress plugin proporciona ejemplos completos de esto. Pero puede personalizarlo para que gire completamente el sistema de capacidades, si lo desea.